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

时间:2012-06-11 09:55:18

标签: php sql html-table rows

我有一个数据库加载了不同的教堂信息,我试图将数据库中的所有信息插入到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行正确的结构,但有重复的数据。我知道我没有改变身份证,但我不确定应该做什么

3 个答案:

答案 0 :(得分: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&gt; 1)应确保使用空单元格正确呈现表格 - 应该跨越未在当前行上绘制的正确数量的单元格。

答案 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,您需要进行一些额外的检查,因为在这种情况下,您将有一个或两个空单元格填充在结尾处。表

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