使用MySQL在PHP中创建多行表

时间:2013-09-24 15:20:37

标签: php mysql

我试图创建如下内容:

但是我现在的代码给了我:

白色的部分是我用下面的代码获得的部分,黑色的部分是我在添加两个<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); 

它可能比我想象的要简单,但是有谁知道我怎么能做到这一点?

2 个答案:

答案 0 :(得分: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>";

答案 1 :(得分: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);