【问题标题】:Android, Volley,SQL Only one Record being displayed?Android,Volley,SQL 只显示一条记录?
【发布时间】:2016-07-11 00:42:03
【问题描述】:

所以经过多次故障排除后,我终于让我的列表视图工作了。

基本上我的表有 3 条记录应该匹配 id 1。我希望这些记录显示在我的 android 列表视图中,只显示 1 条。我假设我的 php 在我输入时是正确的 myurl://retreiveData.php?id=1

显示所有 3 条记录,但 android 应用程序只显示 1 条

我将在下面发布我的 php,以及循环遍历 json 数据的 java 提取

 <?php 
 if($_SERVER['REQUEST_METHOD']=='GET'){
   $id  = $_GET['id'];
   require_once('dbConnect.php');
   $sql = "SELECT * FROM Exercises WHERE id='".$id."'";
   $r = mysqli_query($con,$sql);
   while($res = mysqli_fetch_array($r)){
   $result = array();
   array_push($result,array(
   "muscle group"=>$res['muscle group'],
   "exercise"=>$res['exercise'],
  )
  );
   echo json_encode(array("result"=>$result));
  }
   mysqli_close($con);
  }

【问题讨论】:

    标签: java php android sql listview


    【解决方案1】:

    在 PHP 中将 $result = array(); 行移到 while 循环上方。

    在每次迭代中,您都在创建一个新对象。在浏览器上,您可以看到,因为您在每次迭代中打印该值,但在 while 循环结束时,它将只有最后一个值。您可以通过在while 循环之后回显$result 的值来测试它。

    【讨论】:

    • 谢谢,这是有道理的,还值得注意的是我有“echo json_encode(array("result"=>$result));”。在 while 循环中,将其移出它以及将数组线移动到循环上方可以解决此问题。谢谢
    • 乐于助人。如果它解决了您的问题,您可以接受正确的答案。这将对未来的访问者有所帮助。
    猜你喜欢
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多