使用php进行json编码无法获取[]括号
这是我的密码使用php进行json编码无法获取[]括号,php,json,Php,Json,这是我的密码 <? include '../dbConnect.php'; $amp=trim($_POST['amp']); //$amp='AMP8'; //$sql=mysql_query("select tblRepairQueue.ackNo,tblRepairQueue.repairStatus,tblRepairQueue.savedAt from tblRepairQueue,AMPcustomers where AMPcustomers.phone1=tblRep
<?
include '../dbConnect.php';
$amp=trim($_POST['amp']);
//$amp='AMP8';
//$sql=mysql_query("select tblRepairQueue.ackNo,tblRepairQueue.repairStatus,tblRepairQueue.savedAt from tblRepairQueue,AMPcustomers where AMPcustomers.phone1=tblRepairQueue.phoneNo and AMPcustomers.id='".$amp."'");
$sql=mysql_query("select phone1 from AMPcustomers where id='".$amp."'");
$response = array();
while($row=mysql_fetch_array($sql))
{
$sql_query=mysql_query("select ackNo,repairStatus,savedAt from tblRepairQueue where phoneNo='".$row['phone1']."'");
while($row1=mysql_fetch_array($sql_query)){
$ackNo=$row1['ackNo'];
$repairStatus=$row1['repairStatus'];
$savedAt=$row1['savedAt'];
$response[]=array('ackNo'=>$ackNo,'repairStatus'=>$repairStatus,'savedAt'=>$savedAt);
}}
print json_encode($response);
?>
但是我希望输出看起来像
[{"ackNo":"26101211236759","repairStatus":"Closed and Complete","savedAt":"2012-10-26 00:55:25"},{"ackNo":"031212102614381","repairStatus":"Closed and Complete","savedAt":"2012-12-02 23:05:54"}]
有谁能帮我找出错误,或者做些什么才能得到最后的方括号这有点奇怪,因为我有以下代码:
<?php
$array = array();
$array[] = array("ackNo"=>"26101211236759","repairStatus"=>"Closed and Complete","savedAt"=>"2012-10-26 00:55:25");
$array[] = array("ackNo"=>"26101211236780","repairStatus"=>"Closed and Complete","savedAt"=>"2012-10-26 10:55:25");
echo json_encode($array);
?>
此代码确实应该输出
[{…},…]
。所以我们不能告诉你你到底出了什么问题。在转换为Json之前,请检查$response
变量的结构,看看哪里出了问题
注意,代码允许SQL注入。您必须更改它,以便在SQL查询中转义参数
$amp
和$row['phone1']
。即使您现在依赖magic qoutes,此解决方案也不是未来的证明(现在确实是证明),因为对它的支持已在PHP 5.4中删除。请重新检查它不能为您提供如下输出:{“ackNo”:“26101236759”,“repairStatus”:“Closed and Complete”,“savedAt”:“2012-10-26 00:55:25”,“ackNo”:“031212102614381”,“repairStatus”:“已关闭并完成”,“保存日期”:“2012-12-02 23:05:54”}
因为它正在创建一个数组的数组,所以不能这样打印
它总是像纸一样打印
[{"ackNo":"26101211236759","repairStatus":"Closed and Complete","savedAt":"2012-10-26 00:55:25"},{"ackNo":"031212102614381","repairStatus":"Closed and Complete","savedAt":"2012-12-02 23:05:54"}]
你所写的应该有用:
//要添加多少个
$response_count=3;
//你的回应,刚刚模板化
$response\u模板=数组(
“响应号”=>0,
'ackNo'=>'dffdgd',
“repairStatus”=>“$repairStatus”,
'savedAt'=>'$savedAt'
);
//您的空响应数组
$response=array();
对于($i=0;$i)
[{"ackNo":"26101211236759","repairStatus":"Closed and Complete","savedAt":"2012-10-26 00:55:25"},{"ackNo":"26101211236780","repairStatus":"Closed and Complete","savedAt":"2012-10-26 10:55:25"}]
[{"ackNo":"26101211236759","repairStatus":"Closed and Complete","savedAt":"2012-10-26 00:55:25"},{"ackNo":"031212102614381","repairStatus":"Closed and Complete","savedAt":"2012-12-02 23:05:54"}]
// How many to add
$response_count=3;
// Your response, just templated
$response_template=array(
'response_number'=>0,
'ackNo'=>'dffdgd',
'repairStatus'=>'$repairStatus',
'savedAt'=>'$savedAt'
);
// Your empty response array
$response = array();
for($i=0;$i<$response_count;$i++) {
$response_template['response_number'] = $i; // Set the 'response number' to the itteration.
$response[]= $response_template; // Add the template to the collection
}
print json_encode($response);