【问题标题】:Load mysql data to Highcharts line chart using JSON使用 JSON 将 mysql 数据加载到 Highcharts 折线图
【发布时间】:2015-08-21 21:41:01
【问题描述】:

我正在尝试将我的数据从数据库导入折线图 (Highcharts)。我的代码不起作用。

这是我的 PHP 代码:

<?php
require('../php/config.php');
        $con=mysqli_connect("localhost", "root", "ginnastica", "progetto");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
        if(isset($_GET['src']))
        {   
        $records=array();
        $records =  select($mysqli,"SELECT Sesso AS name, Occupati AS data FROM occupazione WHERE Sesso='totale' AND Periodo LIKE '%2008'");
            $rows = array();
            $rows['name'] = 'Totale';
            while($r = mysql_fetch_assoc($records)) {
            $rows['data'][]=$r['data'];
            }
            return json_encode($rows);
        }
        else
            return json_encode(array('status' => 'error', 'details' => 'no src provided'));

    }
?>

似乎“mysql_fetch_assoc”不起作用。我的数组 $rows id 的输出是:

{

    "name": "Totale"

}

没有称为“数据”的元素。

我做错了什么?

【问题讨论】:

  • 你在 else 后面少了一个 {

标签: php mysql json highcharts linechart


【解决方案1】:

起初:

  1. 看看../php/config.php 文件中的内容是值得的,因为该文件的内容可能会影响您提供的其他行的行为。
  2. occupazione 表的结构和数据(至少几行数据)也值得一看,因为数据或结构也会改变输出。
  3. 您在else 之后缺少{, - 正如@Moppo 已经提到的那样。
  4. 警告mysql_fetch_assoc 此扩展自 PHP 5.5.0 起已弃用,并将在未来删除。相反,应该使用 MySQLi 或 PDO_MySQL 扩展。在 php.net 中阅读更多内容

在那之后和一些更多的修复,我最终会以接近的方式编写你的代码:

<?php

$con = mysqli_connect("localhost", "root", "ginnastica", "progetto");
// Check connection
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if (isset($_GET['src'])) {
    $records = $con->query("SELECT Sesso AS name, Occupati AS data FROM occupazione WHERE Sesso='totale' AND Periodo LIKE '%2008'");
    $rows = array();
    $rows['name'] = 'Totale';
    while ($r = $records->fetch_assoc()) {
        $rows['data'][] = $r['data'];
    }
    return json_encode($rows, JSON_NUMERIC_CHECK);
} else {
    return json_encode(array('status' => 'error', 'details' => 'no src provided'));
}

正如我所说,我们对您使用的数据库一无所知,所以我猜您的选择结果不会返回任何行。然后你没有data(只有{"name": "Totale"}),只是因为while没有什么可以迭代的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多