You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用MySQL、PHP和JSON查询数据并解决JSON格式问题

看起来你是要给Highcharts生成适配的JSON数据对吧?我帮你把代码补全并修正问题,这样就能输出正确格式的JSON了:

完整修正代码
<?php
// 改进数据库连接:直接指定数据库,错误处理更严谨
$con = mysqli_connect("localhost", "你的用户名", "你的密码", "highchart");
if (!$con) {
    die('Could not connect: ' . mysqli_connect_error());
}

// 执行查询,添加查询错误判断
$query = mysqli_query($con, "SELECT * FROM trafico");
if (!$query) {
    die('Query failed: ' . mysqli_error($con));
}

// 初始化Highcharts需要的数据结构
$category = ['name' => 'Time'];
$series1 = ['name' => 'Tx', 'data' => []];
$series2 = ['name' => 'Rx', 'data' => []];

// 遍历查询结果,填充数据(请根据实际表字段名调整)
while ($r = mysqli_fetch_assoc($query)) {
    // 假设时间字段为`t_time`,Tx/Rx为数值型字段`t_tx`/`t_rx`
    $category['data'][] = $r['t_time'];
    $series1['data'][] = (float)$r['t_tx']; // 强制转为数值,避免JSON输出字符串
    $series2['data'][] = (float)$r['t_rx'];
}

// 组合成Highcharts期望的最终结构
$result = [
    'categories' => $category,
    'series' => [$series1, $series2]
];

// 设置响应头并输出JSON,确保数值类型正确
header('Content-Type: application/json');
echo json_encode($result, JSON_NUMERIC_CHECK);

// 关闭数据库连接
mysqli_close($con);
?>
关键细节说明
  • 数据库连接优化:把数据库名直接作为mysqli_connect的第四个参数,省去单独调用mysqli_select_db的步骤,同时用mysqli_connect_error()获取更准确的连接错误信息。
  • 数据类型处理:将Tx和Rx字段强制转为浮点型,再通过JSON_NUMERIC_CHECK参数确保JSON输出的是数值而非字符串——这对Highcharts的图表渲染至关重要,否则可能出现数据不显示的问题。
  • 结构匹配Highcharts:最终输出的JSON会完全适配Highcharts的要求,示例格式如下:
{
  "categories": {
    "name": "Time",
    "data": ["2024-05-01 10:00", "2024-05-01 10:01", "..."]
  },
  "series": [
    {
      "name": "Tx",
      "data": [120.5, 150.2, "..."]
    },
    {
      "name": "Rx",
      "data": [90.3, 110.7, "..."]
    }
  ]
}
  • 记得替换代码里的用户名、密码、表字段名为你实际的配置,比如时间字段如果是t就改成$r['t'],Tx/Rx字段同理。

内容的提问来源于stack exchange,提问作者Alex Welander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:42:19