Php 为每个数组元素选择一行信息

Php 为每个数组元素选择一行信息,php,mysql,Php,Mysql,我有一段代码不会产生任何东西,甚至不会产生错误消息。我试图在while循环中回显结果,但即使这样也没有显示任何内容。有什么建议吗 foreach($droppedStudentIds as $value){ $query3 = "select * from student_classlists where StudentId = '$value' and ClassListDate = (select max(ClassListDate) from student_classl

我有一段代码不会产生任何东西,甚至不会产生错误消息。我试图在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查询本身,它生成了所需的结果


谢谢

您要分配给此行循环通过的数组:

 $droppedStudentIds[$value][] = $row['ClassListDate'];
这可能会导致您的脚本超时,这就是您没有看到任何输出的原因

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

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

谢谢大家的回复,这有助于纠正错误

请求单个记录时不需要while循环 这个查询实际上是不正确的。无论StudentId是否存在,子选择项都将获取数据库中的最长日期。正确的查询如下所示:

从student_类列表中选择ClassListDate,其中StudentId='$value',ClassListDate=从StudentId='$value'的student_类列表中选择maxClassListDate


再次感谢

唯一的解释是查询实际上没有返回任何行。尝试回显$query3,然后将该查询粘贴到phpmyadmin或mysql中。ClassListDate为空?谢谢@Daniel,我尝试了你的建议,但是$temp出现了一个未定义的变量错误。嗯,我一定错过了什么明显的东西…那只是一个初始化警告。在进入循环之前,添加行“$temp=array;”