在PHP中使用foreach和while生成表

在PHP中使用foreach和while生成表,php,mysql,foreach,while-loop,Php,Mysql,Foreach,While Loop,我已经做过很多次类似于下表的事情,我使用while语句填充表的部分,但是我以前从未做过这样的事情,的一部分填充了foreach语句,这让我很困惑 在本例中,我创建了一个表,然后根据数据库中表的数量,用供应商列表填充第一列。(每个供应商都有自己的表) 现在我有了包含所有供应商列表的数组,我用它在表中生成s <table> <thead> <th style="text-align: center;">Supplier</th> <t

我已经做过很多次类似于下表的事情,我使用while语句填充表的
部分,但是我以前从未做过这样的事情,
的一部分填充了foreach语句,这让我很困惑

在本例中,我创建了一个表,然后根据数据库中表的数量,用供应商列表填充第一列。(每个供应商都有自己的表)

现在我有了包含所有供应商列表的数组,我用它在表中生成
s

<table>
  <thead>
  <th style="text-align: center;">Supplier</th>
  <th style="text-align: center;">Earliest line</th>
  <th style="text-align: center;">Latest line</th>
  <th style="text-align: center;"># of total lines</th>


  </thead>
  <?php
  foreach ($supplierList as $subList) {
    $supplierName        = $subList;          

    $earlyExp            = "SELECT date FROM $subList ORDER BY date DESC LIMIT 1" ;
    $earlyExpQuery       = mysqli_query($con, $earlyExp);     
    $lateExp             = "SELECT date FROM $subList ORDER BY date ASC LIMIT 1" ;
    $lateExpQuery        = mysqli_query($con, $lateExp);
    $countLines          = "SELECT * from $subList";
    $countLinesQuery     = mysqli_query($con, $countLines);    
    $countLinesCount     = mysqli_num_rows($countLinesQuery);

    while ($row = mysqli_fetch_array($earlyExpQuery)) {
    $earlyExpDate    = $row['date'];

  ?>  
  <tbody>
  <td><img src = "/img/suppliers/<?= $supplierName ?>.png"></td>  
  <td style="text-align: center;"><?= $earlyExpDate ?></td>
  <td style="text-align: center;"><?= $lateExpDate ?></td>
  <td style="text-align: center;"><?= $countLinesCount ?></td>

  </tbody>
  <?php  
    }
    } 
  ?>
  </table>

供应商
最早行
最新路线
#总行数
.png“>

该表本身构建正确,并在一个唯一的行中显示每个供应商。我不知道如何使用foreach语句中唯一供应商的信息填充该行的其他部分。

好的,我将其整理出来。如果这对其他人有帮助,我会这样做:

这段代码和我上面的文章放在同一个位置,所以在表格的标题和正文之间。我不需要使用任何


关键是我必须关闭每个while语句,但最后一个语句除外-关闭
标记后但
之前的语句,如下所示:

</tbody>
<?php  
    }
    } 
  ?>
  </table>


也许你应该告诉我们应该怎么做以及你尝试了什么。你的表没有嗯…我以前从未使用过标记…我总是从到…@JohnWu这是一个表头行。TR是一个表行。没有TR,你的整个表将是一行。
<?php
  foreach ($supplierList as $subList) {
    $supplierName        = $subList;          

    $earlyExp            = "SELECT * FROM $subList where dateOne != '' UNION SELECT * from $subList where dateTwo != '' ORDER BY dateTwo, dateOne ASC LIMIT 1" ;
    $earlyExpQuery       = mysqli_query($con, $earlyExp);             
    $lateExp             = "SELECT * FROM $subList where dateOne != '' UNION SELECT * from $subList where dateTwo != '' ORDER BY dateTwo, dateOne DESC LIMIT 1" ;
    $lateExpQuery        = mysqli_query($con, $lateExp);
    $countLines          = "SELECT * from $subList";
    $countLinesQuery     = mysqli_query($con, $countLines);    
    $countLinesCount     = mysqli_num_rows($countLinesQuery);

    while ($row = mysqli_fetch_array($earlyExpQuery)) {
    $earlyExpDate    = $row['dateTwo'] ? $row['dateTwo'] : $row['dateOne'];
    }    
    while ($row = mysqli_fetch_array($lateExpQuery)) {
    $lateExpDate    = $row['dateTwo'] ? $row['dateTwo'] : $row['dateOne'];

  ?>  
</tbody>
<?php  
    }
    } 
  ?>
  </table>