如何显示Mysql php结果json格式


How to display Mysql php result json format?

我的PHP代码如下:

$query = "SELECT *
        FROM `address`
        WHERE customer_id =$customer_id
        ORDER BY `default` DESC";
$result=mysql_query($query);
$value = mysql_num_rows($result);
if($value>=1)
{
    while($row = mysql_fetch_array($result)) 
    {
        $details =  array(
        'status'=>'sucess', 
        'message'=>'address available',
        'id' => $row['id'], 
        'customer_id' =>$row['customer_id'],
        'at' => $row['at'],
        'name'=>$row['name'],
        'mobile'=>$row['mobile'],
        'city'=>$row['city'],
        'address'=>$row['address'],
        'latlog'=>$row['latlog'],
        'default'=>$row['default']
        );          
    }
    echo  json_encode($details);
}

输出如下:

{"status":"sucess","message":"address available","id":"52","customer_id":"14","at":"Home","name":"Shhsh","mobile":"99989998","city":"Calicut","address":"Gsggsgs","latlog":"76.3007429,76.3007429","default":"Yes"}

它是json对象。我的require json是:

{"status":"sucess","message":"address available","details":[{"id":"52","customer_id":"14","at":"Home","name":"Shhsh","mobile":"99989998","city":"Calicut","address":"Gsggsgs","latlog":"76.3007429,76.3007429","default":"Yes"}]
} 

我应该对所需的json格式做什么更改?即json对象包含json数组。我应该为获得所需的json格式做什么更改。我是新手。提前致谢。

您需要在外部创建一个数组来附加结果数据,然后在将其解码为JSON之前将其放在main数组中。

,

if($value>=1)
{
    $details=array();
    while($row = mysql_fetch_array($result)) 
    {
        $details[]=  array(
        'id' => $row['id'], 
        'customer_id' =>$row['customer_id'],
        'at' => $row['at'],
        'name'=>$row['name'],
        'mobile'=>$row['mobile'],
        'city'=>$row['city'],
        'address'=>$row['address'],
        'latlog'=>$row['latlog'],
        'default'=>$row['default']
        );          
    } 
    $main_array=array();
    $main_array['status']='sucess';
    $main_array['message']='address available';
    $main_array['details']=$details;
    echo  json_encode($main_array);
}

将生成如下JSON: http://json-parser.com/deec3edd

请在我认为不需要的时候删除

$query ="SELECT id,customer_id,at,name,mobile,
        city,address,latlog,default
        FROM `address`
        WHERE customer_id =$customer_id
        ORDER BY `default` DESC";
$result=mysql_query($query);
$value = mysql_num_rows($result); 
$json=array();
        $json['status']='sucess';
        $json['message']='address available';
        $json['details']=$value;
        echo jsone_encode($json);

将此代码替换为您的代码…这是你的工作…谢谢

while($row = mysql_fetch_array($result)) 
{
    $details =  array(
    'id' => $row['id'], 
    'customer_id' =>$row['customer_id'],
    'at' => $row['at'],
    'name'=>$row['name'],
    'mobile'=>$row['mobile'],
    'city'=>$row['city'],
    'address'=>$row['address'],
    'latlog'=>$row['latlog'],
    'default'=>$row['default']
    );          
}
$json= array('status'=>'sucess','message'=>'address available','details'=> $details);
echo  json_encode($json);

您要做的是生成细节数组并将其作为数组添加到响应中,这样您就可以控制循环外的状态(例如,如果它不返回数据):

if($value>=1){
    $details=array();
    while($row = mysql_fetch_array($result)) 
    {
        $details[]=  array(
        'id' => $row['id'], 
        'customer_id' =>$row['customer_id'],
        'at' => $row['at'],
        'name'=>$row['name'],
        'mobile'=>$row['mobile'],
        'city'=>$row['city'],
        'address'=>$row['address'],
        'latlog'=>$row['latlog'],
        'default'=>$row['default']
        );          
    } 
    $main_array=array();
    $message = 'address available';
}else{
    $message = 'no address';
    $details = null;
}
echo json_encode(array(
  'success' => $value>=1,
  'message' => $message, 
  'details' => $details
));

你可以编辑你的代码

while($row = mysql_fetch_array($result)) 
{
    $details =  array(
    'status'=>'sucess', 
    'message'=>'address available',
    'id' => $row['id'], 
    'customer_id' =>$row['customer_id'],
    'at' => $row['at'],
    'name'=>$row['name'],
    'mobile'=>$row['mobile'],
    'city'=>$row['city'],
    'address'=>$row['address'],
    'latlog'=>$row['latlog'],
    'default'=>$row['default']
    );          
}
echo  json_encode($details);

$datails = array();
while($row = mysql_fetch_array($result)) 
{
  $detail =  array(
  'status'=>'sucess', 
  'message'=>'address available',
  'details'=>[
    'id' => $row['id'], 
    'customer_id' =>$row['customer_id'],
    'at' => $row['at'],
    'name'=>$row['name'],
    'mobile'=>$row['mobile'],
    'city'=>$row['city'],
    'address'=>$row['address'],
    'latlog'=>$row['latlog'],
    'default'=>$row['default']
 ]
 );
 array_push($datails,$datail);         
}
echo  json_encode($details);