使用 PHP 使用 HTML Table 操作 MySQL 结果

Manipulating MySQL Results with HTML Table using PHP

我希望有人能帮助我。我正在创建一个硬件网页 - 在内容部分将显示从数据库中读取的主要类别。我希望结果被读取为每行 3 个和 2 列,因为有 6 个类别。类似于我下面的内容。

| CAT1 | CAT2 | CAT3 |
| CAT4 | CAT5 | CAT6 |

我目前将它显示在列中,但它只是在所有列中复制相同的数据。即

| CAT1 | CAT1 | CAT1 |
| CAT2 | CAT2 | CAT2 |

如果有人有任何想法,请告诉我。

这是我使用的代码:

$query = "SELECT distinct category FROM listings";
$result = mysql_query($query);

echo "<table>";

while($row = mysql_fetch_array($result)){
echo "<tr><td>" . $row['category'] . "</td><td>" . $row['category'] . "</td></tr>";
}

echo "</table>";

问题在于您的 while 语句对每个 <td> 使用同一行,您可以使用计数器来检查何时放置新行:

$catNo = 1;

echo "<table> <tr>";

while($row = mysql_fetch_array($result)) {
    echo "<td>" . $row['category'] . "</td>";
    $catNo++;
    if ($catNo == 3) {
        echo "</tr><tr>"
        //if you end up having more than six categories reset $catNo
        $catNo = 1;
    }

}

echo "</tr> </table>";

您 运行 遇到的问题是您在每一列中打印相同的值,因为 $row 没有被移动到下一次迭代。根据查询的输出,您可以执行以下操作:

echo "<table><tr>";
$idx = 0;
while($row = mysql_fetch_array($result)) {
   if(++$idx % 3 == 0) {
      echo "</tr><tr>";
   }
   echo "<td>" . $row['category'] . "</td>";
}
echo "</tr></table>";

% 运算符是模运算符,returns 运算符除以操作数的余数。本例$idx除以3,所以回显3行后"</tr><tr>",然后循环结束后全部关闭

只要您愿意,这适用于所有类别。

$catNo = 1;

echo "<table> <tr>";

while($row = mysql_fetch_array($result)){
    echo "<td>" . $row['category'] . "</td>";
    if ($catNo % 3 == 0) {
       echo "</tr><tr>"
    }
    $catNo++;
}

echo "</tr> </table>";