PHP循环输出数据库查询结果有五种方法:一、while+mysqli_fetch_assoc;二、foreach+PDO::fetchAll;三、for+mysqli_num_rows;四、while+PDOStatement::fetch;五、模板分离+foreach。

如果您在使用PHP进行数据库操作后需要将查询结果循环输出到网页上,则可能是由于未正确遍历查询返回的数据集。以下是实现PHP增删改查后循环显示数据的多种方法:
一、使用while循环配合mysqli_fetch_assoc()
该方法适用于面向过程风格的MySQLi连接,通过逐行获取关联数组实现结果集的循环输出,适合初学者理解数据流动过程。
1、建立mysqli连接并执行SELECT查询语句,得到$result资源。
2、使用while($row = mysqli_fetch_assoc($result)) { }包裹输出逻辑。
立即学习“PHP免费学习笔记(深入)”;
3、在循环体内用echo输出$row['字段名'],例如echo $row['id'] . " - " . $row['name'];
4、确保在循环前添加表头HTML结构,如
| ID |
姓名 |
,并在循环中拼接| ... |
。二、使用foreach循环配合PDO::fetchAll()
该方法基于PDO预处理机制,先将全部结果一次性提取为二维数组,再用foreach遍历,语法简洁且便于控制整体结构。
1、使用PDO对象执行查询后调用fetchAll(PDO::FETCH_ASSOC)获得二维数组。
2、使用foreach($rows as $row) { }开始遍历。
3、在循环中直接访问键名,例如echo "" . htmlspecialchars($row['title']) . "";
4、注意对输出内容使用htmlspecialchars()防止XSS,尤其当字段含用户输入时。
三、使用for循环配合mysqli_num_rows()和mysqli_data_seek()
该方法显式控制索引位置,适用于需按序号操作或反向遍历等特殊场景,强调对结果集长度与指针的精确管理。
1、调用mysqli_num_rows($result)获取总行数,并赋值给变量$count。
2、使用for($i = 0; $i
3、每次循环开始前调用mysqli_data_seek($result, $i),重置内部指针至第$i行。
4、调用mysqli_fetch_assoc($result)获取当前行,并输出,例如printf("第%d条:%s
", $i + 1, $row['content']);
四、使用PDOStatement::fetch()配合while循环
该方法不预先加载全部数据,而是每次fetch仅取一行,内存占用低,适合处理大量记录。
1、通过PDOStatement对象执行查询后,直接进入while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { }。
2、在循环内构造HTML元素,如echo "" . $row['id'] . "
";
3、避免在循环中重复执行查询或重建PDOStatement对象。
4、确保PDO对象已设置错误模式为异常:$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
五、使用模板分离方式结合foreach(Twig/Laravel Blade风格模拟)
该方法将PHP逻辑与HTML展示分离,提升可维护性,即使不使用框架也可通过简单字符串替换模拟基本模板行为。
1、将查询结果数组赋值给变量$rows,并读取包含{{ item.name }}占位符的HTML模板字符串。
2、初始化空字符串$output,然后foreach($rows as $item) { }逐条替换模板中的占位符。
3、使用str_replace()替换每个占位符,例如str_replace('{{ item.id }}', $item['id'], $template);
4、将每次替换后的片段拼接到$output中,最终echo $output输出完整HTML列表。
以上就是PHP增删改查怎么循环输出结果_php循环显示数据【代码】的详细内容,更多请关注php中文网其它相关文章!