我已经厌倦了将PHP转换为JSON文件,但是生成的JSON文件与通常发生的情况非常不同。这张表在下面
rid rname mobile email address opentiming closetiming menuid type averagecost image
1 abc 9876543212 sbjaca@gmail.com fdsjdsfdnm 00:10:00 00:00:00 1 asian 120 http://gjsblog.esy.es/images/download.png
2 abcdefc 9876543212 ajit@gmail.com qwertym 00:00:03 00:00:04 2 chinese 120 http://gjsblog.esy.es/images/The_Table.pngphp文件如下所示
//retrieve.php
<?php
include("dbconfig.php");
$result = @mysql_query("select * from Restaurants ");
$response =array();
if(@mysql_num_rows($result)>0){
$response['Restaurants'] = array();
while($row=@mysql_fetch_array($result)){
array_push($response['Restaurants'], $row);
}
}
if($result){
$response['success']=1;
$response['message']="Records Retrieved sucessfully";
}else{
$response['success']=0;
$response['message']="Retrieval Failure";
}
echo json_encode($response);
?>JSON两次在列中包含数据,一次在列名之前,一次在列名之后。JSON显示为
{
"Restaurants": [
{
"0": "1",
"rid": "1",
"1": "abc",
"rname": "abc",
"2": "9876543212",
"mobile": "9876543212",
"3": "sbjaca@gmail.com",
"email": "sbjaca@gmail.com",
"4": "fdsjdsfdnm",
"address": "fdsjdsfdnm",
"5": "00:10:00",
"opentiming": "00:10:00",
"6": "00:00:00",
"closetiming": "00:00:00",
"7": "1",
"menuid": "1",
"8": "asian",
"type": "asian",
"9": "120",
"averagecost": "120",
"10": "http:\/\/gjsblog.esy.es\/images\/download.png",
"image": "http:\/\/gjsblog.esy.es\/images\/download.png"
},
{
"0": "2",
"rid": "2",
"1": "abcdefc",
"rname": "abcdefc",
"2": "9876543212",
"mobile": "9876543212",
"3": "sbjaca@gmail.com",
"email": "sbjaca@gmail.com",
"4": "fdsjdsfdnm",
"address": "fdsjdsfdnm",
"5": "00:00:03",
"opentiming": "00:00:03",
"6": "00:00:04",
"closetiming": "00:00:04",
"7": "2",
"menuid": "2",
"8": "chinese",
"type": "chinese",
"9": "120",
"averagecost": "120",
"10": "http:\/\/gjsblog.esy.es\/images\/The_Table_(restaurant)_logo.png",
"image": "http:\/\/gjsblog.esy.es\/images\/The_Table_(restaurant)_logo.png"
}
],
"success": 1,
"message": "Records Retrieved sucessfully"
}发布于 2016-11-15 05:15:25
变化
while($row=@mysql_fetch_array($result))至
while($row=@mysql_fetch_array($result, MYSQL_ASSOC))因为如果您只使用第一个语句,MYSQL_BOTH将被用作默认值,并使结果数组类似于此。
只是一个建议,您最好使用MySQLi或PDO_MySQL,因为mysql_fetch_array在PHP5.5.0中已被废弃,在PHP7.0.0中被删除。
https://stackoverflow.com/questions/40601857
复制相似问题