【问题标题】:Using PHP to Loop and Write Rows in Table [closed]使用 PHP 在表中循环和写入行 [关闭]
【发布时间】:2014-09-08 21:48:27
【问题描述】:

这是从此处开始的先前问题的延续:

Pull Apart Date Range into Separate Cells in CSV, Excel or Spreadsheet

在咨询了几位开发人员后,我决定将其转变为 PHP/MySql 解决方案,而不是 Excel VBA 解决方案。这是问题所在。我是一个完整的 PHP 新手。我可以编写 html 和 css 代码(这就是我偏离 Excel/VBA 解决方案的原因),但是在阅读了太多 PHP 之后,我开始有点眼花缭乱。我希望你能帮忙。

这是当前的问题:

我有一张放汽车零件的桌子。每个汽车零件都适合一年的范围。对于每个部分,我需要该范围内每一年的列表(行)。例如,福特野马的消音器可能适合 1972 年到 1977 年。在表中,目前这只是一行数据。在消声器适合的范围内,我每年都需要一行数据。对于此示例,表格将从一行变为六行,每行包含零件适合模型的年份。

有人告诉我“编写一个循环”,请务必为我执行此操作。我试过了。我拉过头发。对 PHP.net 进行了更多研究并再次尝试。如果您能帮助我解决这个问题,我们将不胜感激!

这是创建表的代码:

`enter code here`
<?php
$result = mysqli_query($con,"SELECT * FROM xxxxxxxxxxxx");
echo "<table border='1'>
<tr>
<th>ItemNo</th>
<th>Description</th>
<th>Model</th>
<th>YearBeg</th>
<th>YearEnd</th>
<th>YearRangeCount</th>
</tr>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['ItemNumber'] . "</td>";
echo "<td>" . $row['Description'] . "</td>";
echo "<td>" . $row['Model'] . "</td>";
echo "<td>" . $row['YearBeg'] . "</td>";
echo "<td>" . $row['YearEnd'] . "</td>";
echo "<td>" . $row['YearRange'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>

【问题讨论】:

  • 您遇到了什么问题?你确定你的列名在你的数据库中是正确的吗?为了解决您的问题,您可以将 $result 替换为 $result = mysqli_query($con, $query) or die ("Error in query: $query. ".mysql_error()); 以显示错误(如果有)
  • @Bijan ("Error in query: $query. ".mysql_error()); 应该是 mysqli_error($con) - 这两个 API 不能混合使用。

标签: php mysql loops range


【解决方案1】:

只需在您的 while 中创建另一个循环,该循环在该范围内的每一年都循环,就像这样

while($row = mysqli_fetch_array($result)) {
    for ($year = $row['YearBeg']; $year <= $row['YearEnd']; ++$year) {
        echo "<tr>";
        echo "<td>" . $row['ItemNumber'] . "</td>";
        echo "<td>" . $row['Description'] . "</td>";
        echo "<td>" . $row['Model'] . "</td>";
        echo "<td>" . $year . "</td>";
        echo "</tr>";
    }
}

【讨论】:

  • 这就是解决方案。我添加了代码,它完全按照描述工作。谢谢你。对于任何有兴趣的人,我添加了一个带有更新代码的新表格作为示例结果,并给出了正确答案:musclecarpartsdirect.com/twwoodward/…
猜你喜欢
  • 2020-10-06
  • 1970-01-01
  • 2016-04-06
  • 2014-11-24
  • 1970-01-01
  • 2016-08-03
  • 1970-01-01
  • 1970-01-01
  • 2013-06-24
相关资源
最近更新 更多