PHP:For循环重复第一项而不是循环遍历所有项目?

Ros*_*nda 0 php mysql for-loop

我有一个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>';
}
?>
Run Code Online (Sandbox Code Playgroud)

预期的结果是:

Curso 1

Curso 2

Curso 3

相反,我得到了

Curso 1

Curso 1

Curso 1

tri*_*cot 7

您的循环应该在每次迭代时从结果集中获取.标准方式(如在PHP文档中给出的许多示例中)是在以下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>'; 
}
Run Code Online (Sandbox Code Playgroud)