在PHP中使用foreach和while生成表
我已经做过很多次类似于下表的事情,我使用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
部分,但是我以前从未做过这样的事情,
的一部分填充了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>