Javascript无法读取我的json数组

时间:2015-07-02 19:36:54

标签: javascript php jquery mysql json

所以我从我的数据库中获取了一些数据并使用以下代码将它放在json数组中:

getDataFromDB:

<?php

include"connectToDB.php";
//voert de volgende query uit
$result = $db->query("SELECT * FROM youtubevideos");

$array = array();

while($row = $result->fetch_assoc()) {
    $array = $row;
    echo json_encode($array);
}
?>

dataToHTML.js:

$.getJSON("getDataFromDB.php", function(result){
    $.each(result, function(i, field){
        console.log(field);
    });
});

在console.log(字段)中,它应该给我数组中的所有数据。但由于某种原因我的控制台是空的。好像它无法读取我的数组。但有趣的是...... 当我在我的php文件中的这行代码exit();之后键入echo json_encode($array);时,它可以以某种方式读取它。但问题是它只给我一个数据库中的一行。当然我想从我的数据库中获取所有数据,因此我无法使用exit();。他们对我做错了什么其他的建议吗? 谢谢!

2 个答案:

答案 0 :(得分:3)

您的php文件返回多个json字符串,因为echo循环内的for

将您的代码更改为此

<?php

include"connectToDB.php";
//voert de volgende query uit
$result = $db->query("SELECT * FROM youtubevideos");

$array = array(); // you can remove this

while($row = $result->fetch_assoc()) {
    $array[] = $row;
}
echo json_encode($array);

您现在将获得所有行。

答案 1 :(得分:0)

这部分代码在数据库返回的每一行上输出一个JSON数组:

while($row = $result->fetch_assoc()) {
  $array = $row;
  echo json_encode($array);
}

您应首先将项添加到数组,然后在循环外输出您的json编码数组。

while($row = $result->fetch_assoc()) {
  $array[] = $row;
}

echo json_encode($array);

试试。