为什么我的json_encode没有在PHP

时间:2016-08-14 23:25:22

标签: javascript php json ajax

我正在尝试根据用户输入的名称从数据库接收数据,一切正常我看到屏幕上的值并没有错误这是PHP代码:

 <?php
 $dbhost = "localhost";
 $username = "root";
 $password = "";
 mysql_connect($dbhost,$username,$password);
 @mysql_select_db("trynew") or die(mysql_error());
 $user ="mon";  
 $query = "SELECT * FROM trynewtable where name = '$user' ";
 $all_result = array();
 $result = mysql_query($query);
 if($result==FALSE)
 {
  die(mysql_error());
 }
 while($row = mysql_fetch_array($result))
 {
 $all_result[] = $row;
}
header('Content-Type: application/json');
$jsondata = json_encode($all_result);echo $jsondata;
mysql_close();
?>

但是我在html div上看到的输出是:

[{"0":"1","id":"1","1":"mon","Name":"mon","2":"26","Age":"26","3":"F","Gender":"F"}]

存储在数据库中的实际数据是: 数据库中的实际数据

enter image description here

请让我知道我做错了什么?

1 个答案:

答案 0 :(得分:5)

您正在使用mysql_fetch_array(),它将返回数据库中数字键控和关联数据数组。使用mysql_fetch_assoc()mysql_fetch_array()MYSQL_ASSOC作为第二个参数来获取关联数组。

while($row = mysql_fetch_assoc($result))

while($row = mysql_fetch_array($result, MYSQL_ASSOC))

仅供参考,mysql_ API为deprecated且为removed in PHP 7