Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Highcart数据未从MySQL显示为JSON数据_Php_Mysql_Json - Fatal编程技术网

Php Highcart数据未从MySQL显示为JSON数据

Php Highcart数据未从MySQL显示为JSON数据,php,mysql,json,Php,Mysql,Json,为什么这段代码不显示数据。。。 db连接正常,但如果代码如下所示,数据显示 $sql = "SELECT * FROM `demo_viewer` WHERE 1 "; $viewer = mysqli_query($mysqli,$sql); $view = array(); while ($row = mysqli_fetch_array($viewer)){ $view[] = $row; } $viewer = json_encode($view,JSON_NUMERI

为什么这段代码不显示数据。。。 db连接正常,但如果代码如下所示,数据显示

$sql = "SELECT * FROM `demo_viewer` WHERE 1 ";

$viewer = mysqli_query($mysqli,$sql);

$view = array();

while ($row = mysqli_fetch_array($viewer)){

    $view[] = $row;
}

$viewer = json_encode($view,JSON_NUMERIC_CHECK);
试试这个

$sql = "SELECT SUM(numberofview) as count FROM demo_viewer 

        GROUP BY YEAR(created_at) ORDER BY created_at";

$viewer = mysqli_query($mysqli,$sql);

$viewer = mysqli_fetch_all($viewer,MYSQLI_ASSOC);

$viewer = json_encode(array_column($viewer, 'count'),JSON_NUMERIC_CHECK);
编辑

mysqli_query($mysqli,'SET NAMES utf8mb4');

$sql = "SELECT * FROM `demo_viewer` WHERE 1 ";

$viewer = mysqli_query($mysqli,$sql);

$view = array();

while ($row = mysqli_fetch_array($viewer,MYSQLI_ASSOC)){

    $view[] = $row;
}

$viewer = json_encode($view, JSON_PARTIAL_OUTPUT_ON_ERROR | JSON_FORCE_OBJECT | JSON_NUMERIC_CHECK);
PS:您不应该使用select*from表格。因为Highchart需要一个列值。不是所有的列。

试试这个

$sql = "SELECT SUM(numberofview) as count FROM demo_viewer 

        GROUP BY YEAR(created_at) ORDER BY created_at";

$viewer = mysqli_query($mysqli,$sql);

$viewer = mysqli_fetch_all($viewer,MYSQLI_ASSOC);

$viewer = json_encode(array_column($viewer, 'count'),JSON_NUMERIC_CHECK);
编辑

mysqli_query($mysqli,'SET NAMES utf8mb4');

$sql = "SELECT * FROM `demo_viewer` WHERE 1 ";

$viewer = mysqli_query($mysqli,$sql);

$view = array();

while ($row = mysqli_fetch_array($viewer,MYSQLI_ASSOC)){

    $view[] = $row;
}

$viewer = json_encode($view, JSON_PARTIAL_OUTPUT_ON_ERROR | JSON_FORCE_OBJECT | JSON_NUMERIC_CHECK);

PS:您不应该使用select*from表格。因为Highchart需要一个列值。不是所有列。

echo
$sql
并尝试直接在mysql中运行它并调试它。Naga echo$sql在mysql中显示无问题数据,然后检查数据库连接和对象范围。检查Revision Naga,第二个代码显示数据…但第一个代码不显示数据…echo
$sql
并尝试直接在mysql中运行它并调试它。Naga echo$sql在mysql中显示无问题数据,然后检查数据库连接和对象范围。检查Revision Naga,第二个代码显示数据…但第一个代码不显示数据…在JSON编码中添加
JSON\u PARTIAL\u OUTPUT\u ON\u ERROR | JSON\u FORCE\u OBJECT
选项…我测试了各种场景,找到了另一个设置mysql char set UTF-8或更高版本的选项(用它更新了答案)。首先回显
$viewer
json字符串,然后对图表进行二次调试。您的意思是对utf-8..进行排序吗?数据库未使用任何排序规则(无)。我从这里获取代码,检查更新的答案。如果我没有弄错的话,您试图向highchart发送3列,这是错误的方法…在JSON编码中添加
JSON\u PARTIAL\u OUTPUT\u ON\u ERROR\124; JSON\u FORCE\u OBJECT
选项…我已经测试了各种场景,并找到了另一个设置mysql char set UTF-8或更高的选项(用它更新了答案)。首先回显
$viewer
json字符串,然后对图表进行二次调试。您的意思是对utf-8..进行排序吗?数据库未使用任何排序规则(无)。我从这里获取代码,检查更新的答案。如果我没有弄错的话,你试图把3列数据发送到highchart,这是错误的方法。。。