当我从一个表中获取用于创建Json格式化字符串的所有值时,我还在php response.How中获得了索引以避免它?
我的Php程序
<?php
include 'configa.php';
$sql1 = mysql_query("SELECT * FROM `message_store_push`") or die(mysql_error());
$c = mysql_num_rows($sql1);
$i=0;
while($sql2 = mysql_fetch_array($sql1)){
$arrDet['AddressDetails']['details'][] = $sql2;
}
if($c>0){
$arrDet['Details']['status'] = "success";
} else {
$arrDet['Details']['status'] = "No data";
}
echo json_encode($arrDet);
?>而反应是
{
"AddressDetails":{
"details":[
{
"0":"1",
"key_id":"1",
"1":"2016-01-27 04:20:52",
"key_time":"2016-01-27 04:20:52",
"2":"HI",
"key_message":"HI"
}
]
},
"Details":{
"status":"success"
}
}但我需要
{
"AddressDetails":{
"details":[
{
"key_id":"1",
"key_time":"2016-01-27 04:20:52",
"key_message":"HI"
}
]
},
"Details":{
"status":"success"
}
}我怎样才能做到这一点
发布于 2016-01-27 04:51:05
用这个:
<?php
include 'configa.php';
$sql1 = mysql_query("SELECT * FROM `message_store_push`") or die(mysql_error());
$c = mysql_num_rows($sql1);
$i=0;
while($sql2 = mysql_fetch_assoc($sql1)){ // instead of mysql_fetch_array()
$arrDet['AddressDetails']['details'][] = $sql2;
}
if($c>0){
$arrDet['Details']['status'] = "success";
} else {
$arrDet['Details']['status'] = "No data";
}
echo json_encode($arrDet);
?>因为mysql_fetch_array()返回表值索引和关联键,所以只有关联键及其值总是使用mysql_fetch_assoc()函数!
发布于 2016-01-27 04:41:50
您需要使用mysql_fetch_assoc而不是mysql_fetch_array
这
while($sql2 = mysql_fetch_array($sql1)){
$arrDet['AddressDetails']['details'][] = $sql2;
}应该是
while($sql2 = mysql_fetch_assoc($sql1)){
$arrDet['AddressDetails']['details'][] = $sql2;
}还请注意,mysql_*函数已从PHP7中删除,您可以开始使用mysqli或PDO。
https://stackoverflow.com/questions/35029014
复制相似问题