0

我有这段代码不会产生任何东西,甚至不会产生错误消息。我试图在 while 循环中回显结果,但即使这样也没有显示任何内容。有小费吗?

foreach($droppedStudentIds as $value){

        $query3 = "select * from student_classlists where StudentId = '$value' and ClassListDate = (select max(ClassListDate) from student_classlists)";    

        if($result = mysqli_query($mysqli, $query3)) {

            while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {

                echo "Date: ".$row['ClassListDate'];

                $droppedStudentIds[$value][] = $row['ClassListDate'];

            }

        mysqli_free_result($result);

        } else die ("Could not execute query 3");

}

我的目标是查找 $droppedStudentIds 数组中每个元素的日期信息。我检查了 MySQL 查询本身,它产生了所需的结果。

谢谢!

4

2 回答 2

1

您正在分配给您在这一行上循环的数组:

 $droppedStudentIds[$value][] = $row['ClassListDate'];

这可能会导致您的脚本超时,这就是您看不到任何输出的原因。

我会添加第二个数组以避免冲突并将其用于存储查询结果,例如

$temp[$value] = $row['ClassListDate'];
于 2013-09-15T03:27:25.837 回答
0

感谢大家的回复,它帮助确定了错误!

  1. 请求单条记录时不需要while循环
  2. 查询实际上是不正确的。无论 StudentId 是否存在,子选择都在数据库中获取最大日期。正确的查询如下:

    从 student_classlists 中选择 ClassListDate,其中 StudentId = '$value' 和 ClassListDate = (select max(ClassListDate) from student_classlists where StudentId = '$value')

再次感谢!

于 2013-09-15T03:59:42.540 回答