下面代码的输出只显示了数据的最后一行。有什么想法吗?我想让它显示所有的行。
这是代码:
$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(...);
}