Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP和Mysql while循环_Php_Html_Css_Mysql_Session - Fatal编程技术网

PHP和Mysql while循环

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']); $

我有一个带订单的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;
?>
删除所有与$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的副本,乐意提供帮助。你可以接受这个答案,也可以投票:谢谢