我有一个请求项目列表的MySQL查询。
我取了它们并希望用for循环显示每个项目,但它只显示重复的第一个项目,而不是每个项目。
为什么?
<?php
$conectar = mysqli_connect(HOST, USER, PASS, DATABASE);
$query = " SELECT cursoID, nombreCurso, estadoCurso
FROM cursos
WHERE estadoCurso='abierto'";
$buscarCurso = mysqli_query($conectar,$query);
$curso=mysqli_fetch_assoc($buscarCurso);
$totalRows = mysqli_num_rows($buscarCurso); //There are 3 rows of results
echo $totalRows;
for ($i=0; $i < $totalRows; $i++) {
echo '<br>';
echo $curso['nombreCurso'];
echo '<br>';
}
?>
预期结果是:
Curso 1
Curso 2
Curso 3
相反,我得到了
Curso 1
Curso 1
Curso 1
答案 0 :(得分:7)
您的循环应该在每次迭代时从结果集中获取。标准方式(如PHP documentation中给出的许多示例中所示)是您在while
条件下执行此操作:
$totalRows = mysqli_num_rows($buscarCurso); //There are 3 rows of results
echo $totalRows;
while ($curso=mysqli_fetch_assoc($buscarCurso)) {
echo '<br>';
echo $curso['nombreCurso'];
echo '<br>';
}
答案 1 :(得分:0)
您需要一个循环来查询结果。在这种情况下,您将获得一个结果并循环该结果3次。
<?php
while($curso = mysqli_fetch_assoc($buscarCurso)) {
// Do some stuff
echo '<br />' . $curso['nombreCurso'] . '<br />';
}
?>
答案 2 :(得分:0)
首先使用准备语句进行块SQL注入,而不是检查此代码
red
干杯!!!