2011-05-05 33 views
0

以前问过这个问题,但是我已经将这个问题缩小到了这一点代码。这里是我的代码,当我运行它,它只是说“空” ..如何为json格式化Mysql/php数组?

$getmsg = "SELECT * FROM user WHERE account_id = $id";  
$showmsg = @mysqli_query ($dbc, $getmsg); 
     while ($row = mysqli_fetch_array($showmsg, MYSQLI_ASSOC)) { 

$arrResults = array($row['user_username']); 


} // END WHILE 


// Print them out, one per line 
echo json_encode($arrResults); 
+0

我想我在这里找到了你以前放弃的问题,我们缩小了它:http://stackoverflow.com/questions/5902397/how-to-use-jquery-to-autocomplete-with-usernames-for-a- message-app/5902648这是黑幕。 – Beez 2011-05-05 19:16:20

回答

4

首先你已经把回音只是相呼应,而不是大家的最后一个项目外循环和你不检查如果您的查询出现错误。

相反,这就足够了:

$getmsg = "SELECT * FROM user WHERE account_id = $id";  
$result = @mysqli_query($dbc, $getmsg) or die("Error: " . mysql_error()); 
$result = mysql_fetch_assoc($result); 
echo json_encode($result); 

它放入一个ASSOC阵列的结果,然后将整个数组到JSON并打印其转换。

+0

与作者的问题无关,但使用'@'是一种不好的风格,同时输出mysql_error()并将MySQLi('mysqli_query()')与MySQL('mysql_error()')混合使用。 – binaryLV 2011-05-05 19:15:48

+0

我刚刚复制了他的代码以进行概念验证。 – rzetterberg 2011-05-05 19:18:31

1

你很可能遇到的问题是在你的赋值语句:

$ arrResults =阵列($行[ 'user_username']);

您应将其更改为以下:

$ arrResults [] = $行[ 'user_username'];