从php数据库查询创建单个用户帐户的Json数组

时间:2015-07-31 09:08:20

标签: php mysql json

我的问题是:我的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,一些地址,一些邮政编码","]

我认为我的结果可能是错误的,因为我无法看到开发人员如何能够区分每个帐户,因为它们似乎都相互渗透。

2 个答案:

答案 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.