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

标签 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>';
}
?>

预期的结果是:

光标 1

光标 2

光标 3

相反,我得到了

光标 1

光标 1

光标 1

最佳答案

您的循环应该在每次迭代时从结果集中获取。标准方法(如 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>'; 
}

关于PHP:重复第一项而不是遍历所有项目的循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38573900/

相关文章:

c - 在C中循环帮助!

matlab - 在循环内更改 for 循环索引变量

php - 从数据库中获取数据并像表格一样排列

php - 如何在 PHP 中将字符串转换为条件表达式?

mysql - 将mysql数据库从一台电脑复制到另一台

MySQL CREATE TRIGGER IF variable is greater than set value 错误1064

java - 从移动设备到服务器的强大文件传输

php - TCPDF:PNG 图像渲染不正确

mysql - 无法删除 MySQL 的常规日志文件 - 显示仍在工作台中打开

javascript - JS 循环内的 fetch 中获取