需要PHP显示多行,但它只显示最后一行


Needing PHP to show multiple rows, but it is only showing me the last row

下面代码的输出只显示了数据的最后一行。有什么想法吗?我想让它显示所有的行。

这是代码:

$FinalSet = array();
while ($ResultSet = mysqli_fetch_array($Query)){
 $FinalSet = array(
'idExam' => $ResultSet[0],
'SubjectName' => $ResultSet[1],
'ExamTime' => $ResultSet[2],
 'ExamDate' => $ResultSet[3],
 'IntakeCode' => $ResultSet[4],
'Scope' => $ResultSet[5],
);
 }
 echo json_encode($FinalSet);

您必须将它们添加到数组中。此时您正在替换数组本身。

你可以使用

$FinalSet[] = array(

而不是

$FinalSet = array(

您也可以使用array_push,其作用相同:

array_push($FinalSet, array(......));

您已经初始化$FinalSet=array();并且您将数据存储为单个索引,因此您的数据已被覆盖,并且您找到了数据的最后一行。现在您可以使用$FinalSet[]而不是$FinalSet。您将获得所有数据。

试试这个,你可以使用$FinalSet[]或array_push()将数组内容推送到主数组中。目前,您正在分别替换循环计数的相同数组。所以你得到了变量中的最后一个数组值。

$FinalSet[] = array(
     'idExam' => $ResultSet[0],
     'SubjectName' => $ResultSet[1],
     'ExamTime' => $ResultSet[2],
     'ExamDate' => $ResultSet[3],
     'IntakeCode' => $ResultSet[4],
     'Scope' => $ResultSet[5]
 );

而不是

$FinalSet = array(
     'idExam' => $ResultSet[0],
     'SubjectName' => $ResultSet[1],
     'ExamTime' => $ResultSet[2],
     'ExamDate' => $ResultSet[3],
     'IntakeCode' => $ResultSet[4],
     'Scope' => $ResultSet[5],
 );

在循环中尝试以下操作:

while (...) {  
   $FinalSet[] = array(...);
}