Циклический результат вывода

Я пытаюсь зациклить строки, чтобы отразить мой результат. Итак, я присоединяюсь к своим 2 таблицам базы данных, чтобы получить некоторые результаты, в частности, номер модели и название модели из таблицы заказов, а другие - из таблицы order_history. Я пытаюсь зациклить строки, чтобы они отображали товары, которые доставлены в какое время и кем, а также одобрены кем. Тем не менее, я, кажется, получаю бесконечный цикл результатов, могу ли я дать несколько советов о том, как сделать мой цикл результатов. Это таблицы, которые я использую-> стол заказов и таблица order_history. Спасибо.

[EDIT]: ошибка

  <?php

                    $query = "SELECT * FROM orders o
                              INNER JOIN order_history oh 
                              ON o.order_id = oh.order_id";
                    $result = $conn->query($query);
                    if (!$result) die($conn->error);
                    $rows = $result->num_rows;

                    if ($rows > 0) { 

                ?>
                        <table  id = "tabledata" class = " table table-striped table-hover table-bordered">

                            <tr class = "bg-dark text-white text-center">

                                <th> Order ID </th>
                                <th> Model Number </th>
                                <th> Model Name </th>
                                <th> Warehouse A </th>
                                <th> Storage Room </th>


                            </tr >
                <?php
                        // output data of each row
                        while($rows = $result->fetch_assoc()){

                ?>          
                            <tr>
                <?php
                        for($i=0;$i<count($rows);$i++){
                ?>
                                <td> <?php echo $rows['order_id'];  ?> </td>
                                <td> <?php echo $rows['model_number'];  ?> </td>
                                <td> <?php echo $rows['model_name'];  ?> </td>
                                <td> 
                                    <ul>
                                        <li>Delivered by <?php echo $rows['deliverer'];  ?> at 
                                            <?php echo $rows['time_delivered'];  ?></li>
                                        <li><?php echo $rows['order_status'];  ?> by <?php echo $rows['approver'];  ?></li>
                                    </ul>
                                </td>
                                <td> 
                                    <ul>
                                        <li>Delivered by <?php echo $rows['deliverer'];  ?> at 
                                        <?php echo $rows['time_delivered'];  ?></li>
                                        <li><?php echo $rows['order_status'];  ?> by <?php echo $rows['approver'];  ?></li>
                                   </ul>
                               </td>
                <?php
                        }
                ?>
                            </tr>
                <?php
                            }
                        }

                ?>
                        </table>

Почему вы используете цикл for внутри строк, а предоставляете строку, которая вам нужна?

Rakesh Jakhar 24.02.2019 11:40

У вас не должно быть цикла for($i=0;$i<count($rows);$i++){, цикл while уже перебирает все ваши результаты.

Nick 24.02.2019 11:41

Но мне нужно зациклить мои результаты, как в моем столбце station_name в моем order_history, станции разные, и я не могу отразить их в определенных столбцах таблицы html.

heh 24.02.2019 11:43

Это не бесконечный цикл, это вложенный цикл, который вам не нужен.

mickmackusa 24.02.2019 11:56

Но как вывести определенные записи в определенные столбцы html? Столбец базы данных station_name имеет разные станции, и я пытаюсь отразить его в разных столбцах с соответствующими данными.

heh 24.02.2019 11:58

Используя переменную «$group», которая создается как null, но обновляется в конце каждого цикла. Вы должны уточнить свой вопрос, предоставив желаемый результат.

mickmackusa 24.02.2019 11:59

Вам нужно будет адаптировать именно этот метод для доставки сгруппированного вывода HTML: stackoverflow.com/a/51697336/2943403 или stackoverflow.com/a/53020886/2943403 или stackoverflow.com/a/54205037/2943403.

mickmackusa 24.02.2019 12:26
Стоит ли изучать 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 и хотите разрабатывать...
1
7
49
1

Ответы 1

используйте следующее :-

<?php while($rows = $result->fetch_assoc()){ ?>
<tr>
<td> <?php echo $rows['order_id'];  ?> </td>
<td> <?php echo $rows['model_number'];  ?> </td>
<td> <?php echo $rows['model_name'];  ?> </td>
<td align = "center"> 
    <ul>
        <li>Delivered by <?php echo $rows['deliverer'];  ?> at 
            <?php echo $rows['time_delivered'];  ?></li>
        <li><?php echo $rows['order_status'];  ?> by <?php echo $rows['approver'];  ?></li>
    </ul>
</td>
<td align = "center"> 
    <ul>
        <li>Delivered by <?php echo $rows['deliverer'];  ?> at <?php echo $rows['time_delivered'];  ?></li>
        <li><?php echo $rows['order_status'];  ?> by <?php echo $rows['approver'];  ?></li>
   </ul>
</td>
</tr>
<?php } ?>

Это решает половину проблемы, но не следует за столбцами html, как в столбце html под складом A и складским помещением, он повторяет то же самое и не воспроизводится должным образом.

heh 24.02.2019 11:47

@heh, не могли бы вы опубликовать скриншот.

Rakesh Jakhar 24.02.2019 11:49

Я разместил скриншот в сообщении с вопросом выше

heh 24.02.2019 11:52

Я спрашиваю о том, после обновления вашего кода, какой вывод вы получаете, я хочу видеть это, как вы упомянули, что о столбце HTML

Rakesh Jakhar 24.02.2019 11:53

Да, я разместил вывод как Редактировать: ошибка в сообщении с вопросом, извините, я не уточнил это

heh 24.02.2019 11:54

используйте <td align = "center">, вы можете использовать свойство margin-left

Rakesh Jakhar 24.02.2019 11:56

Как вы можете видеть на изображении, под столбцами склада A и складского помещения они повторяют одно и то же, продолжая многократно повторять другое в другой строке.

heh 24.02.2019 11:56

Пожалуйста, не публикуйте ответы использовать это. Ответы, содержащие только код, не имеют большого значения для Stackoverflow, потому что они мало что делают для обучения/расширения возможностей тысяч будущих исследователей.

mickmackusa 24.02.2019 11:58

Ermm вывод все тот же, просто они центрированы. Является ли мой способ повторения результата неправильным? Я хочу отображать записи с именем station_name склада A в html-столбец Warehouse A и Storage room station_name в html-столбец Storage Room. Является ли мой запрос ошибочным или то, как я неправильно повторяю результат?

heh 24.02.2019 12:04

как я понимаю из вашей таблицы, точка идет перед строкой столбца, в этом случае вы можете отформатировать ее с помощью css

Rakesh Jakhar 24.02.2019 12:28

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