从JSON数组中检索所有数据

时间:2017-04-13 07:15:23

标签: php json

我想使用此学生ID号检索学生参加的所有活动。所以这是我的PHP代码,这段代码正在运行,但它只能检索1个事件,而这个学生已经参加了几个活动。

<?php
$host='localhost';
$username='tan';
$password='1234567'; 
$db='feedback01';

$conn=mysqli_connect($host,$username,$password,$db);

if (!$conn)
  {
  die('Could not connect: ' . mysqli_connect_error());
  }
  $studentID=$_POST['StudentID'];

  $studentID=mysqli_real_escape_string($conn,$studentID);
  $query="SELECT * From PassportData WHERE StudentID='$studentID'";
  $result=mysqli_query($conn,$query);
  $response = array();
  if(mysqli_num_rows($result)>0)
    {
        $row = mysqli_fetch_assoc($result);
        $event = $row["Events"];
        $date = $row["Date"];
        $code = "login_success";
        array_push($response, array("code"=>$code, "Events"=>$event, "Date"=>$date));
        echo json_encode($response);
    }
    else{
        $code = "login_failed";
        $message = "not found!";
        array_push($response, array("code"=>$code, "messsage"=>$message));
        echo json_encode($response);
        }
    mysqli_close($conn);
 ?>

2 个答案:

答案 0 :(得分:0)

你的代码应该是。尝试使用结果数组循环。

if(mysqli_num_rows($result)>0)
{
    while($row = mysqli_fetch_assoc($result)){
    $event = $row["Events"];
    $date = $row["Date"];
    $code = "login_success";
    array_push($response, array("code"=>$code, "Events"=>$event, "Date"=>$date));
    }
    echo json_encode($response);
 }

答案 1 :(得分:0)

我不知道你的表格结构,但我认为你必须改变你的代码:

if(mysqli_num_rows($result)>0) {
  $response = [];
  while($row = mysqli_fetch_assoc($result)) {
    $response[] = $row;
  }
  echo json_encode($response);
} else{
    $code = "login_failed";
    $message = "not found!";
    array_push($response, array("code"=>$code, "messsage"=>$message));
    echo json_encode($response);
}
mysqli_close($conn);

&GT;