码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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"
            }]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

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

    解决放哪

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

    以下是一个示例代码:

    
    // 连接到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;
    ?>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66

    @漏刻有时

  • 相关阅读:
    使用Windows系统自带的安全加密解密文件操作步骤详解
    聚观早报 |2024年春节连休8天;RTE2023开幕
    Elasticsearch:使用 Amazon Bedrock 的 semantic_text
    始祖双碳新闻 | 2022年7月20日碳中和行业早知道
    【HTML专栏2】VSCode的使用(新建HTML文件)
    《算法导论》第14章-数据结构的扩张 14.1-动态顺序统计 14.2-如何扩张数据结构
    Rust 实战丨倒排索引
    Javaweb的AJAX及Axios框架使用(封装AJAX)
    微信小程序/uni-app tabBar 页面传参问题
    序章 调度系统架构设计总述
  • 原文地址:https://blog.csdn.net/weixin_41290949/article/details/132824405
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号