Загрузка данных MySQL в линейный график Highcharts с использованием JSON

Я пытаюсь импортировать мои данные из базы данных в линейный график (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» не работает. Вывод моего массива $ row id, который:

{

"name": "Totale"
}

Там нет элемента под названием «данные».

Что я делаю неправильно?

0

Решение

Вначале:

  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 не имеет ничего, чтобы повторить бросок.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]