从PHP MySQL结果创建JSON对象

3
我希望使用PHP从MySQL结果中创建一个JSON对象,以便将其传递给JavaScript。我不太明白JSON数组和JSON对象之间的区别。
以下是我的方法。但是是否有更好的方法?我相信这是数组的方法?
$json = array();
while($r=mysql_fetch_array($res)){
  $json['firstname'] = $r['firstname'];
  $json['lastname'] = $r['lastname'];
}
echo json_encode($json);

我希望能够从JavaScript中获取信息,例如仅选择所有名字中的第一个等等。

2个回答

11

你可以尝试这样做,获取数据并将其推入数组中,然后输出该数组。

$info=array();
while($row = mysql_fetch_array($res,MYSQL_ASSOC)){
array_push($info,$row);
}
echo json_encode($info);

将返回

array(2) { [0]=> array(3) { ["id"]=> string(1) "1" ["firstname"]=> string(3) "foo" ["lastname"]=> string(3) "bar" } [1]=> array(3) { ["id"]=> string(1) "2" ["firstname"]=> string(3) "foo" ["lastname"]=> string(3) "bar" } }

JSON

[{"id":"1","firstname":"foo","lastname":"bar"},{"id":"2","firstname":"foo","lastname":"bar"}]

2

这将对每一行进行编码,每一行都是一个JSON对象:

$json = array();
while($r=mysql_fetch_array($res)){
  $json[] = $r;
}
echo json_encode($json);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接