0

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

4

3 回答 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) 应确保使用空单元格正确呈现表格 - 应跨越未在当前行上绘制的正确数量的单元格。

于 2012-06-11T10:13:54.983 回答
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,则需要进行一些额外的检查,因为在这种情况下,您将在表格末尾填充一两个空单元格。

于 2012-06-11T10:15:46.593 回答
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>");
于 2012-06-11T10:10:12.680 回答