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

时间:2014-09-04 06:54:28

标签: php mysql mysqli

以下代码的输出仅显示我数据的最后一行。有任何想法吗?我想让它向我显示所有行。

以下是代码:

$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);

4 个答案:

答案 0 :(得分:2)

您必须将它们添加到您的阵列中。你正在更换阵列本身。

您可以使用

执行此操作
$FinalSet[] = array(

而不是

$FinalSet = array(

您也可以使用array_push,它也是如此:

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

试试这个,你可以使用$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],
 );

答案 3 :(得分:0)

在循环中尝试以下操作:

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