php+mysql实现补齐24小时时间段同时赋值0的后端解决方案

  • javascript对象数据合并实现补齐24小时时间段同时赋值0的解决方案(1)
  • javascript对象数据合并实现补齐24小时时间段同时赋值0升级版解决方案(2)

项目需求

在php中使用mysql生成

arr = [{"dataKey": "00","totalTrans": "4","totalPays": "301.70"},{"dataKey": "01","totalTrans": "1","totalPays": "39.90"},{"dataKey": "03","totalTrans": "2","totalPays": "35.80"}]

json字符串。dataKey代表24小时的时间段,mysql读取到实际只有3个,如何按照格式补齐其他时间段的数。

解决放哪

使用PHP中的MySQL扩展和循环来生成这个JSON字符串。首先,从MySQL数据库中获取实际存在的时间段,并将它们放入一个数组中。然后,使用一个循环来遍历所有24个小时,并检查每个小时是否存在于数据数组中。如果不存在,添加一个新的对象到结果数组中,并将"totalTrans"和"totalPays"属性设置为0。最后,使用json_encode函数将结果数组转换为JSON字符串。

以下是一个示例代码:

<?php
// 连接到MySQL数据库
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";$conn = new mysqli($servername, $username, $password, $dbname);// 检查连接是否成功
if ($conn->connect_error) {die("连接失败: " . $conn->connect_error);
}// 查询实际存在的时间段
$sql = "SELECT dataKey FROM your_table";
$result = $conn->query($sql);// 将实际存在的时间段放入一个数组中
$existingHours = [];
if ($result->num_rows > 0) {while ($row = $result->fetch_assoc()) {$existingHours[] = $row['dataKey'];}
}// 创建一个包含所有24个时间段的数组
$allHours = Array();
for ($i = 0; $i < 24; $i++) {$hour = str_pad($i, 2, '0', STR_PAD_LEFT);$allHours[] = $hour;
}// 创建一个新的数组,用于存放补齐后的数据
$filledData = [];// 遍历所有的时间段
foreach ($allHours as $hour) {// 如果这个时间段在实际存在的时间段中,就添加到新的数组中if (in_array($hour, $existingHours)) {$sql = "SELECT totalTrans, totalPays FROM your_table WHERE dataKey = '$hour'";$result = $conn->query($sql);if ($result->num_rows > 0) {$row = $result->fetch_assoc();$filledData[] = array("dataKey" => $hour,"totalTrans" => $row['totalTrans'],"totalPays" => $row['totalPays']);}} else {// 如果这个时间段在实际不存在的时间段中,就添加一个新的对象,但是totalTrans和totalPays为0$filledData[] = array("dataKey" => $hour,"totalTrans" => "0","totalPays" => "0.00");}
}// 将结果数组转换为JSON字符串
$jsonString = json_encode($filledData);// 输出JSON字符串
echo $jsonString;
?>

@漏刻有时

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/76730.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

坚果投影人事地震:IPO之前,创始人被投资人踢出公司

大数据产业创新服务媒体 ——聚焦数据 改变商业 一份流传于网络的《董事会函件》以及一张微信截图显示&#xff0c;智能投影行业市占率第二的坚果投影8月28日发生人事地震&#xff0c;公司创始人胡震宇被董事会罢免董事长一职&#xff0c;由资方代表连萌担任临时董事长一职。 …

ip地址会随网络变化而变化吗

随着科技的飞速发展&#xff0c;互联网已深入我们生活的方方面面。在这庞大的网络世界中&#xff0c;IP地址作为网络通信的基础元素&#xff0c;引起了广泛关注。网络变化与IP地址之间存在着密切的关系。那么&#xff0c;IP地址是否会随着网络变化而变化呢&#xff1f;虎观代理…

企业架构LNMP学习笔记21

URL重写&#xff1a; ngx_http_rewrite_module 模块用于使用PCRE正则表达式更改请求URI&#xff0c;返回重定向&#xff0c;以及有条件地选择配置。 return 该指令用于结束结束规则的执行并返回状态码给客户端。 403 Forbidden.服务器已经理解请求,但是拒绝执行它 404 Not…

Nginx反向代理联动Tomcat实现多实例部署、动静分离、负载均衡

文章目录 1. 配置反向代理1.1 前置准备1.2 代理服务器配置1.3 真实服务器配置1.4 客户机配置 2. Tomcat 多实例部署2.1 部署JDK2.2 设置JDK环境变量2.3 部署Tomcat服务2.4 路径启动 3. Nginx联动Tomcat实现动静分离、负载均衡3.1 基本原理3.2 前置准备3.3 配置nginx1实现四层代…

Weblogic下启用Gzip压缩

一、首先,去FilterLib download | SourceForge.net网站下载tk-filters-1.0.1.zip。 二、解压这个tk-filters-1.0.1.zip压缩文件&#xff0c;将解压后的文件tk-filters.jar放在Ext项目的WEB-INF/lib/下。 三、打开解压后的文件夹tk-filters\conf\tk-filters.properties GZIPFilt…

HCS 中的一些概念(二)

一、Service OM 1、首页&#xff08;资源状态&#xff09; 2、服务列表 计算资源&#xff1a;计算资源又分为可用分区&#xff08;AZ&#xff09;、规格和虚拟机组&#xff0c;可在此处创建虚拟机、虚拟机组、主机组和规格 网络资源&#xff1a;网络资源又分为物理网络…

Excel VSTO开发6 -Range对象

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 6 Range对象 Excel中最重要的一个对象是Range对象&#xff0c;它可以代表某一单元格、某一行、某一列、某一区域&#xff08;该区域…

分享一下微信小程序开发步骤是什么

微信小程序开发步骤是开发微信小程序所需要遵循的一系列步骤。以下是微信小程序开发的步骤&#xff1a; 一、注册开发者账号 首先&#xff0c;需要注册一个微信开发者账号。可以在微信公众平台上注册并选择“小程序”开发者类型。在注册过程中&#xff0c;需要提供一些必要的信…

Vue 报错error:0308010C:digital envelope routines::unsupported 解决方案(三种)

新换的电脑&#xff0c;系统装的win11&#xff0c;node也是18的版本。 跑了一下老项目&#xff0c;我用的是HbuilderX&#xff0c;点击运行和发行时&#xff0c;都会报错&#xff1a; Error: error:0308010C:digital envelope routines::unsupported 出现这个错误是因为 node.j…

掌握信息利器,快速发现潜在商机——介绍一款高效的数据检索软件

掌握信息利器&#xff0c;快速发现潜在商机——介绍一款高效的数据检索软件 在当今信息爆炸的时代&#xff0c;获取准确、实时的信息变得至关重要。为了帮助您快速发现潜在商机&#xff0c;我们推出了一款功能强大的数据检索软件。无论您是市场调研人员、销售专员还是企业经营者…

CSP 201403-1 相反数

答题 用两个优先队列&#xff0c;一个记录正数升序排序&#xff0c;一个记录负数降序排序&#xff0c;然后在两个队列都不为空的情况下取二者top相加与0比较大小&#xff0c;如果等于0&#xff0c;那么相反数的数目增加一对并同时弹出队列&#xff0c;如果小于0&#xff0c;那…

PostgreSQL 中 serial 与 bigserial 类型的理解与转换

1. serial 与 bigserial 类型理解 serial 与 bigserial 在 PostgreSQL 中属于伪类型&#xff0c;实际只在 create table 时可以引用该类型。serial 和 bigserial 类型&#xff0c;实际上在这个字段上做的操作就是&#xff1a; 创建了一个 integer (serial) 和 bigint (bigser…

JVM之强软弱虚引用

在Java虚拟机&#xff08;JVM&#xff09;中&#xff0c;有几种不同类型的引用&#xff0c;它们分别是&#xff1a;强引用&#xff08;Strong Reference&#xff09;、软引用&#xff08;Soft Reference&#xff09;、弱引用&#xff08;Weak Reference&#xff09;、虚引用&am…

Tauri之单例+多窗口

Tauri之单例多窗口 Tauri 1.4 React 18 单例可以通过tauri_plugin_single_instance实现&#xff0c;多窗口可以简单通过路由来实现 单例 tauri::Builder::default().setup(|app| {let mut label "home";let args: Vec<String> std::env::args().collect();i…

SpringMVC之CRUD------增删改查

目录 前言 配置文件 pom.xml文件 web.xml文件 spring-context.xml spring-mvc.xml spring-MyBatis.xml jdbc.properties数据库配置文件 generatorConfig.xml log4j2日志文件 后台 PageBaen.java PageTag.java 切面类 biz层 定义一个接口 再写一个实现类 …

1. 约瑟夫问题

题目&#xff08;要求用循环链表实现&#xff09; 约瑟夫问题是一个经典的问题。已知n个人&#xff08;不妨分别以编号1&#xff0c;2&#xff0c;3&#xff0c;…&#xff0c;n 代表 &#xff09;围坐在一张圆桌周围&#xff0c;从编号为 k 的人开始&#xff0c;从1开始顺时针…

【赠书活动】考研备考书单推荐

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

【C++】哈希——哈希的概念,应用以及闭散列和哈希桶的模拟实现

前言&#xff1a; 前面我们一同学习了二叉搜索树&#xff0c;以及特殊版本的平衡二叉搜索树&#xff0c;这些容器让我们查找数据的效率提高到了O(log^2 N)。虽然效率提高了很多&#xff0c;但是有没有一种理想的方法使得我们能提高到O(1)呢&#xff1f;其实在C语言数据结构中&a…

Prometheus理论知识

1、Prometheus特性&#xff1a; 基于时间序列模型&#xff1a;时间模型是一系列有序的数据&#xff0c;通常等时间间隔采样数据基于K/V的数据模型&#xff1a;键值对&#xff0c;速度快采样数据使用数学公式&#xff1a;完全基于数学运算而不是其他表达式&#xff0c;并提供查…

关于mybatisplus报错:Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplat的问题

可能是mybatisplus版本不兼容的问题&#xff0c;我之前用的3.4.0&#xff0c;springboot版本是3.1.3&#xff0c;maven版本是3.8.8&#xff0c;运行的时候报了这个错。现在修改了mybatisplus的版本&#xff0c;如下图&#xff1a; 这样就不报错了。 大家可以在这里找合适的my…