php和mysql while循环

gmol1639  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(269)

我有一个带订单的mysql表。我正在尝试遍历orders表,并根据用户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;
?>
quhf5bfb

quhf5bfb1#

全部删除 $i 相关代码。动一下你的手 fetch 对while条件的语句,如下所示:

while( $results=$records->fetch(PDO::FETCH_ASSOC))
bzzcjhmw

bzzcjhmw2#

您需要在while循环中包含html代码,因为您希望显示所有的订单。
我在用这个方法,试试这个。
在第一节中启动

<?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
}
?>

相关问题