json_encode不能正常工作(不再)

时间:2017-06-13 16:07:03

标签: php html mysql json chart.js

所以我遇到了一个奇怪的问题。我正在尝试显示图表数据,但是必须将我的数据转换为JSON的JSON_ENCODE没有返回任何内容。它之前我的数据较少,但由于某种原因它不再返回任何东西了。

这是我的PHP:

$vak = $q->getVakAll();

$data = array();
foreach($vak as $vak){
    $vak = $vak->getCode();
    $result = $q->getAanwezigheidVakkenPerJaar($value, $vak); 
    foreach ($result as $row) {
        $data[] = $row;
    }
}
print json_encode($data);

这没有输出,奇怪的是当我在$ data [] = $ row:

下添加它时
echo $row['vak'];
echo $row['percentage'];

它确实输出了一些东西,这个:

Webdevelopment 176Webdevelopment 224Introductie object georiënteerd programmeren75Multimedia & Design59Informatiestromen73Introductie IT Modelleren6

这就是我想要的输出,但接着是JSON编码,有人可以帮助我吗?

编辑:

$vak = $q->getVakAll(); //gets all subjects (like webdevelopment)//

$result = $q->getAanwezigheidVakkenPerJaar($value, $vak); //this returns all subjects with their corresponding presence (for example, webdevelopment 1 has a total presence of 74(%)//

2 个答案:

答案 0 :(得分:1)

这是你的问题

foreach($vak as $vak)
    $vak = $vak->getCode();

您正在销毁这些命令中的$vak数组。

不要在整个地方重复使用$vak变量。试试这个。

$vaks = $q->getVakAll();

$data = array();
foreach($vaks as $vak){
    $code = $vak->getCode();
    $result = $q->getAanwezigheidVakkenPerJaar($value, $code); 
    foreach ($result as $row) {
        $data[] = $row;
    }
}

答案 1 :(得分:0)

代替print使用:echo json__encode(array) die;希望此帮助。