PHP表包含从SQL数据库加载的3行

问题描述 投票:0回答:3

我有一个数据库加载了不同的教堂信息,我试图将数据库中的所有信息插入到3行的PHP表中。

我想每个单元格的结构是:

Church Name
Image
Pastor Name

我可以轻松地将所有数据插入到表中,但我无法将其显示为3行。

echo("<table>");
while($row = mysql_fetch_array($rs))
{
        echo("<tr>");
        echo("<td>");
        echo("<a href='" . $row['website'] . "'>" . $row['churchName'] . "</a><br>");
        echo("<img src=\"" . $row['image'] . "\"><br>");
        echo($row['pastorName'] . "<br><br>");
        echo("</td>");
        echo("<td>");
        echo("<a href='" . $row['website'] . "'>" . $row['churchName'] . "</a><br>");
        echo("<img src=\"" . $row['image'] . "\"><br>");
        echo($row['pastorName'] . "<br><br>");
        echo("</td>");echo("<td>");
        echo("<a href='" . $row['website'] . "'>" . $row['churchName'] . "</a><br>");
        echo("<img src=\"" . $row['image'] . "\"><br>");
        echo($row['pastorName'] . "<br><br>");
        echo("</td>");
        echo("</tr>");

}
echo("</table>");

这样做会导致我有3行正确的结构,但有重复的数据。我知道我没有改变身份证,但我不确定应该做些什么

php sql html-table rows
3个回答
2
投票

你正在重复行上的数据。如果要每行显示3个项目,则需要添加计数器和语句来绘制表格行中断,如下所示:

$int_Col = 1;
echo("<table>");
while($row = mysql_fetch_array($rs))
{
    if ($int_Col == 1) {
       echo("<tr>");
    }

    echo("<td>");
    echo("<a href='" . $row['website'] . "'>" . $row['churchName'] . "</a><br>");
    echo("<img src=\"" . $row['image'] . "\"><br>");
    echo($row['pastorName'] . "<br><br>");
    echo("</td>");

    if ($int_Col == 3) { 
        echo("</tr>");
        $int_Col = 1;
    } else {
      $int_Col++;
    }
}

if ($int_Col > 1) { 
   echo("<td colspan='". (3 - $int_Col) ."'>&nbsp;</td></tr>");
}
echo("</table>");

最后一次检查($ int_Col> 1)应确保使用空单元格正确呈现表格 - 应该跨越当前行上未绘制的正确数量的单元格。


2
投票

简而言之,我认为这里有两个“行”的定义。

  • MySQL表行
  • HTML表格行

我相信你是在将3个MySQL表行添加到一个HTML表行之后。

使用以下命令每3个MySQL行拆分HTML行:

$i = 0;
while($row = mysql_fetch_array($rs))
{
    // whatever you're already doing(ish)

    $i++;
    if($i % 3 == 0)
    {
         echo('</tr><tr>');
    }
}

如果MySQL行的总数没有精确地除以3,则需要进行一些额外的检查,因为在这种情况下,您将在表的末尾填充一个或两个空单元格。


0
投票

如果我的代码正确,那么您将为数据库中的每一行创建3行。 mysq_fetch将为每一行运行循环,因此循环的正确内容将是:

    echo("<tr>");
    echo("<td>");
    echo("<a href='" . $row['website'] . "'>" . $row['churchName'] . "</a><br>");
    echo("<img src=\"" . $row['image'] . "\"><br>");
    echo($row['pastorName'] . "<br><br>");
    echo("</td>");
    echo("</tr>");
© www.soinside.com 2019 - 2024. All rights reserved.