我通过JSON在PHP和JavaScript之间进行交互时遇到了问题。
PHP-Script从我的数据库中读取数据。 SQL结果由1行组成。
名称| lat | LNG
Kilian | 45.1252335 | 32.2142380
它被编码为JSON:
$query = "SELECT name, lat, lng FROM location l, user u WHERE u.email = l.email";
$result = mysqli_query ($dbc, $query) or die ('Error querying database.');
$to_encode = array();
while($row = mysql_fetch_assoc($result)) {
$to_encode[] = $row;
}
echo json_encode($to_encode);
JavaScript程序从php-script(get_locations.php)加载JSON文件:
$.getJSON('get_locations.php', function (data) {
$.each(data, function(i, name) {
alert(name.parent_level);
});
});
但浏览器中没有警报。如果我检查Chrome中发送的JSON,它只是说[]。 我怎样才能找到发送的名字,lat和lng?
编辑:get_locations.php的实际输出是[]。 将JSON转换为字符串总是导致[]。
答案 0 :(得分:2)
您正在混合功能:
$query = "SELECT name, lat, lng FROM location l, user u WHERE u.email = l.email";
$result = mysqli_query ($dbc, $query) or die ('Error querying database.');
$to_encode = array();
while($row = mysql_fetch_assoc($result)) {
$to_encode[] = $row;
}
echo json_encode($to_encode);
您创建了一个mysqli
查询,因此您应该使用mysqli_fetch_assoc
而不是mysql_
版本获得结果。