0

我在通过 JSON 进行 PHP 和 JavaScript 之间的交互时遇到了问题。

PHP 脚本从我的数据库中读取数据。SQL 结果由 1 行组成。

姓名 | 纬度 | 液化天然气


基连 | 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 脚本 (get_locations.php) 加载 JSON 文件:

$.getJSON('get_locations.php', function (data) {
        $.each(data, function(i, name) {
            alert(name.parent_level);
        });
    });

但是浏览器中没有警报。如果我在 Chrome 中检查发送的 JSON,它只会显示 []。我怎样才能得到发送的名称,经纬度和经度?

编辑:get_locations.php 的真实世界输出是 []。将 JSON 转换为字符串总是会导致 []。

4

1 回答 1

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_版本。

于 2013-04-21T19:26:48.620 回答