选择每个数组元素的信息行

时间:2013-09-15 02:21:31

标签: php mysql

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

谢谢!

2 个答案:

答案 0 :(得分:1)

你要分配到你在这一行上循环的数组:

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

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

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

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

答案 1 :(得分:0)

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

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

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

  3. 再次感谢!