2

我正在尝试创建如下内容:

但是我当前的代码给了我:

白色部分是我使用下面的代码得到的,黑色部分是我添加两<td>行后得到的。问题是我无法每行创建 3 条数据 - 只能垂直或水平。

$result = mysqli_query($con,"SELECT * FROM show_listing");
while($row = mysqli_fetch_array($result))
{

echo "<table>

<tr>
<td>".$row['name']."'</td>
</tr>

</table>";
}

mysqli_close($con); 

它可能比我想象的要简单,但有人知道我该怎么做吗?

4

2 回答 2

1
$c = 0;
echo "<table>";
while($row = mysqli_fetch_array($result))
{
    if ($c%3 == 0) {
        if ($c) echo "</tr>";
        echo "<tr>";
    }
    echo "<td>".$row['name']."</td>";

    $c++;
}
if ($c) echo "</tr>";
echo "</table>";
于 2013-09-24T15:30:26.157 回答
0

你有正确的想法。您不希望在 while 循环中声明,因为结果是您将获得多个表。

所以我将表声明移到了 while 循环之外。我还根据当前列做出了有条件的声明。您现在可以将变量 $columns 设置为您想要的任意多列。

$result = mysqli_query($con,"SELECT * FROM show_listing");
echo "<table>"
$columns=3;
$current_column=1;
while($row = mysqli_fetch_array($result))
{

if($current_column==1) {
    echo "<tr>";
}

echo "<td>".$row['name']."'</td>";

if($current_column==$columns) {
     echo "</tr>";
     $current_column=1;
} else 
     $current_column++;
}
echo "</table>

mysqli_close($con); 
于 2013-09-24T15:30:39.237 回答