php json_encode 仅返回数组的第一行

标签 php mysql

我正在开发一个 Android 应用程序,它向我编写了数据库的服务器发出一些请求。在服务器中我使用 PHP 进行查询。 现在我编写了这段代码来进行查询并将结果推送到一个数组中,稍后我可以使用 java 语言在“Android 部分”中使用该数组。 这是我的 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();

其中 result 是我从 doInBackground 方法获取的 JSONObject。 也许我在这里犯了错误,因为您的所有解决方案总是只给我查询结果的第一行。

最佳答案

您不需要在此处指定数组。

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

至:while($post = mysql_fetch_assoc($res)) {

您可以随时在 while 指令之后使用 var_dump($posts) 并检查是否得到您想要的内容。

关于php json_encode 仅返回数组的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45051840/

相关文章:

php - 用于 PHP GD 图的平滑起伏不定的图像线

javascript - 向我的网站添加 Twitter 分享按钮

php - 最佳实践ajax随机加载更多图像(内容)

mysql - Doctrine : Which syntax for GROUP_CONCAT with a CASE WHEN?

PHP/MySQL : Date lower than today

php 检查数据库中是否存在号码

javascript - 显示数据后不显示添加按钮

mysql - mysql慢查询日志中的"COMMIT"与rails应用程序2.3.5

javascript - 多字节字符占用的字符数在 JavaScript 和 MySQL 中是不同的

MySQL 使用 GROUP BY 和 SUM 进行排名