PHP и MySQL цикл while

У меня есть таблица mysql с заказами. Я пытаюсь просмотреть таблицу заказов и выбрать отдельные заказы клиентов в соответствии с их идентификаторами пользователя и отобразить заказы в их учетных записях клиентов. Однако мой код ниже просто печатает первую строку и повторяет ее бесконечно, каждый раз блокируя мой браузер.

что с этим не так и как мне это решить

<?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;
?>
$records->fetch(PDO::FETCH_ASSOC) получит только одну (первую) строку.
Paul Spiegel 26.08.2018 15:29

Возможный дубликат PHP - цикл выборки PDO

Madhur Bhaiya 26.08.2018 15:31
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
2
37
2

Ответы 2

Удалите весь код, связанный с $i. Просто переместите свой оператор fetch в в то время как условие, как показано ниже:

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

@PeterFlanders рады помочь. Вы можете принять это как ответ, а также проголосовать :) Спасибо

Madhur Bhaiya 26.08.2018 15:51

Вам нужно включить html-код в цикл while, потому что вы хотите отображать все заказы.

Я использую этот метод, попробуйте это.

Начать, находясь в первом разделе 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
}
?>

Другие вопросы по теме