我试图从数据库导入我的数据到折线图(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"
}
没有名为"data"的元素。
我做错了什么?
一开始:
- 查看
-
occupazione
表的结构和数据(至少几行数据)也值得一看,因为数据或结构也可能改变输出。 - 你在
else
之后少了一个{
, -正如@Moppo已经提到的。 -
mysql_fetch_assoc
警告此扩展在PHP 5.5.0中已弃用,并将在将来被删除。相反,应该使用MySQLi或PDO_MySQL扩展名。在php.net 中阅读更多内容
../php/config.php
文件中的内容是值得的,因为该文件的内容可能会影响您提供的其他行的行为。在那之后和一些更多的修复,我将最终写你的代码的方式接近:
<?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'));
}
正如我所说的,我们对您使用的数据库一无所知,所以我的猜测是,您的select结果不返回任何行。然后你没有data
(只有{"name": "Totale"}
),只是因为while
没有迭代抛出。