PHP和Mysql while循环
我有一个带订单的mysql表。我正在尝试循环浏览orders表,并根据其用户id选择各个客户订单,并在其客户帐户上显示订单。然而,我下面的代码只是打印第一行,并不断重复,每次都会阻塞我的浏览器 这有什么问题,我该如何解决PHP和Mysql while循环,php,html,css,mysql,session,Php,Html,Css,Mysql,Session,我有一个带订单的mysql表。我正在尝试循环浏览orders表,并根据其用户id选择各个客户订单,并在其客户帐户上显示订单。然而,我下面的代码只是打印第一行,并不断重复,每次都会阻塞我的浏览器 这有什么问题,我该如何解决 <?php $records = $conn->prepare('SELECT * FROM orders WHERE user_id= :id'); $records-> bindParam(':id', $_SESSION['user_id']); $
<?php
$records = $conn->prepare('SELECT * FROM orders WHERE user_id= :id');
$records-> bindParam(':id', $_SESSION['user_id']);
$records->execute();
$results=$records->fetch(PDO::FETCH_ASSOC);
$i=0;
while($i<=$results):
$i++;
?>
<h3>Your Orders</h3>
<table >
<tr >
<th>Order Number</th><th>Academic Level</th><th>Order Details</th>Manage Order</th>
</tr>
<tr>
<td>#SJ<?=$results['id']; ?> </td><td><?=$results['academic_level']; ?></td><td ><?=$results['details']; ?></td>
</tr>
</table>
<?php
endwhile;
?>
删除所有与$i相关的代码。只需将fetch语句移动到while条件,如下所示:
while( $results=$records->fetch(PDO::FETCH_ASSOC))
您需要在while循环中包含html代码,因为您希望显示所有订单 我在用这个方法,试试这个 在第一个php部分中启动
<?php
$username = $_SESSION['username'];
$sql = $db->prepare("SELECT * FROM tableName WHERE username = '$username' ");
$sql->execute();
while($results=$sql->fetch(PDO::FETCH_ASSOC)){
?>
之后,html部分将出现:
<h3>Your Orders</h3>
<table >
<tr >
<th>Order Number</th><th>Academic Level</th><th>Order Details</th>Manage Order</th>
</tr>
<tr>
<td><?php echo $results['id']; ?> </td><td><?php echo $results['academic_level']; ?></td><td ><?php echo $results['details']; ?></td>
</tr>
</table>
这就是结局
<?php
}
?>
$records->fetchPDO::FETCH_ASSOC将只获取第一行中的一个。可能是@PeterFlanders的副本,乐意提供帮助。你可以接受这个答案,也可以投票:谢谢