我的问题是:我的json_encoded输出是否正确如下,如果没有,它是如何修复的?
我试图在数据库中查询所有共享手机的用户列表。一旦我有了这个列表,我想将它存储在一个json数组中,以便它可以被一个xcode应用程序选中。在xcode应用程序上,用户将能够选择他们正在寻找的用户(我没有构建应用程序,只是让开发人员可以与我的数据库通信)。
用户在应用程序中输入一个电话号码,该应用程序已发布到我在我的php中捕获它的页面,如下所示:
mysql_select_db($database_dbcon, $dbcon);
$query = sprintf("SELECT id, name, surname, perm, branch, mob, branchaddress1, branchpost FROM users WHERE mob=%s AND (status=%s OR status=%s OR status=%s)", GetSQLValueString($_POST['phoneNumber'], "text"), GetSQLValueString('1', "int"), GetSQLValueString('3', "int"), GetSQLValueString('8', "int"));
$Result1 = mysql_query($query, $dbcon);
$userNum = mysql_num_rows($Result1);
if ($userNum > 0) {
$array = array();
while ($userDet = mysql_fetch_assoc($Result1)) {
$array[] = $userDet['forename'] . ',' . $userDet['surname'] . ',' . $userDet['mob'] . ',' . $userDet['branchaddress1'] . ',' . $userDet['branchpost'];
}
echo json_encode($array);
} else {
$false = 'false';
echo json_encode($false);
}
目前正在输出
[" john,doe,0777777777,一些地址,一些邮政编码"," jane,doe,0777777777,一些地址,一些帖子"," john,doe, 0777777777,一些地址,一些邮政编码","]
我认为我的结果可能是错误的,因为我无法看到开发人员如何能够区分每个帐户,因为它们似乎都相互渗透。
答案 0 :(得分:1)
您需要在循环中执行:
while($userDet = mysql_fetch_assoc($Result1))
{
$array[$userDet['id']] = $userDet['forename'].','.$userDet['surname'].','.$userDet['mob'].','.$userDet['branchaddress1'].','.$userDet['branchpost'];
}
但更好的方法是
while($userDet = mysql_fetch_assoc($Result1))
{
$array[$userDet['id']] = array(
'forename' => $userDet['forename'],
'surname' => $userDet['surname'],
[…]
);
}
答案 1 :(得分:0)
您有以下输出:
var jsonData =
[
"john,doe,0777777777,some address,some postcode", // first line
"jane,doe,0777777777,some address,some post", // second line
"john,doe,0777777777,some address,some postcode" // third line
]
所以,后来:
console.log( jsonData[0] ); // output first line
console.log( jsonData[1] ); // output second line
etc.