【问题标题】:Looping output result循环输出结果
【发布时间】:2019-02-24 10:37:42
【问题描述】:

我正在尝试循环这些行以回显我的结果。所以我加入我的 2 个数据库表以获得一些结果,特别是来自 order 表的型号和型号名称,而其他来自 order_history 表。我试图循环这些行,以便它呼应在什么时间和由谁交付的货物,以及由谁批准。但是,我似乎得到了一个无限循环的结果,我可以就如何循环结果提供一些建议。这些是我正在使用的表格-> orders tableorder_history table。谢谢。

[编辑]:error

  <?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 循环,同时提供你需要的行
  • 你不应该有一个for($i=0;$i&lt;count($rows);$i++){ 循环,while 循环已经遍历了你的所有结果。
  • 但是我需要在我的 order_history 中的 station_name 列下循环输出我的结果,站是不同的,我无法在特定的 html 表列中回显它们
  • 这不是一个无限循环,它是一个嵌套循环——你不需要。
  • 通过使用实例化为null 但在每个循环结束时更新的“$group”变量。您应该通过提供所需的渲染输出来澄清您的问题。

标签: php html mysqli


【解决方案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列下,就像在仓库A和储藏室的html列下一样,它重复了同样的事情,并且没有正确回显
  • @heh 你能把截图发上来吗?
  • 我把截图贴在上面的问题帖里
  • 我问的是,在更新您的代码后,您将得到什么输出,我想看看,正如您提到的关于 HTML 列的内容
  • 是的,我已将输出发布为Edit:问题帖子中的错误,抱歉我没有澄清这一点
猜你喜欢
  • 2020-09-28
  • 2012-09-23
  • 2018-10-06
  • 1970-01-01
  • 1970-01-01
  • 2013-08-16
  • 2012-11-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多