繁体   English   中英

php json_encode仅返回数组的第一行

[英]php json_encode return only first row of an array

我正在开发一个Android应用程序,该程序向我已在其中编程数据库的服务器发出一些请求。 在服务器中,我使用PHP进行查询。 现在,我编写了这段代码来进行查询,并将结果推送到一个数组中,以后可以使用Java语言在“ Android part”中使用该数组。 这是我的PHP代码:

$query="SELECT * FROM $tbl_name WHERE user='$myusername'";
$res=mysql_query($query);   
$posts = array();
if(mysql_num_rows($res)) {
  while($post[] = mysql_fetch_assoc($res)) {
     array_push($posts, $post);
  }
} 
echo json_encode(array('posts'=>$posts));

问题是,当我尝试在Java中获取结果时,只能看到结果的第一行。 我确定我有1行以上,因为我尝试打印mysql_num_rows($res)并且结果大于1。如何解决此问题?

编辑。 只是为了澄清。 我拨打了我的服务器,在其中我使用了来自Android AsynTask的php。 在onPostExecute方法中,我进行如下操作:

String res = result.toString();

结果是我从doInBackground方法获得的JSONObject。 也许我在执行错误,因为您的所有解决方案始终只给我查询结果的第一行。

您无需在此处指定数组。

更改: while($post[] = mysql_fetch_assoc($res)) {

收件人: while($post = mysql_fetch_assoc($res)) {

您可以始终在进行while指令后var_dump($posts)并检查是否获得所需的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM