0

我正在尝试为我的论坛进行分页。我试图从数据库中显示结果,尽管一切都无处不在。

这是我的代码:

<!-- start with the table -->
<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
  <tr>
<td width="53%" align="center" bgcolor="#E6E6E6" style="padding:5px;"><strong>Topic / Thread Starter</strong></td>
<td width="15%" align="center" bgcolor="#E6E6E6" style="padding:5px;"><strong>Replies/Views</strong></td>
<td width="13%" align="center" bgcolor="#E6E6E6" style="padding:5px;"><strong>Last Post By</strong></td>
</tr>

                <div id="p1" class="pagedemo _current" style="">
<?php

$sql="SELECT * FROM forum ORDER BY datetime DESC";
$result=mysql_query($sql);
$i = 1;
$z = 1; 

while($rows = mysql_fetch_array($result)){ // Start looping table row 
    if(($i % 4) != 0) 
    { ?>
    <tr>
<td bgcolor="#FFFFFF" style="padding:5px;"><a class="normal" href="view_topic.php?id=<? echo $rows['id']; ?>"><? echo $rows['topic']; ?></a><br /><span style="color:#666; font-size:12px;">Started By <?php echo "<a class='normal' href='http://www.example.com/view_profile.php?user=".getID($rows[username])."'>"; ?> <? echo $rows['username']; ?></a></span></td>
<td align="center" bgcolor="#FFFFFF">Replies: <? echo $rows['reply']; ?><br />Views: <? echo $rows['view']; ?></td>
<td align="center" background="http://example.com/images/forum_fade_bckg.png"><span style="color:#666; font-size:12px;">
<?php echo "<a class='normal' href='http://www.example.com/view_profile.php?user=".getID($rows[lastPoster])."'>"; ?> <?php  echo $rows['lastPoster']; ?></a><br /><?php $date = substr($rows['datetime'],0,12);
if($date == date("M d, Y")) { 
    echo "Today, " . substr($rows['datetime'],-8); 
} else {
    echo $rows['datetime'];
}?> </span></td>
</tr>
    <?php
        // do whatever for the page... (this is inside the div)
        $message = $row['message'];
        echo $i . " " . $message. "<br>";
        $i+=1;
    } 
    else 
    {
        $z+=1;
        // GET ONLY NUMBERS HERE THAT ARE DIVISIBLE BY 4!!!!
        // this is the end of the starting page, and the begining of the next page
        echo '<br>---end---</div>
        <div id="p'.$z.'" class="pagedemo" style="display:none;">---start---<br>NEXT PAGE!!!!!!!'; //
    }

}

?> 
</div>

结果,不是停留在 div 中,而是实际上在 div 之下。<tr>当我用and取出所有东西时</tr>,它们都适合 div。我究竟做错了什么?

4

1 回答 1

0

如果您查看页面的来源,问题应该很明显。我看到一些可能是问题的错误。

片段顶部的 TABLE 结束 TR 标签,然后是 DIV 开始。DIV 应仅位于 TD、TH 或 TABLE 之外。同样在您提供的代码段中,没有结束表标签。对于所有其他问题,这可能是导致浏览器混乱的问题。

请调整结构与此类似:

<div>...</div>
<table>
   <tr>
      <td>Some tags in here(A, DIV, SPAN, etc.)</td>
   </tr>
   <tr>
      <td>...</td>
      <td>...</td>
   </tr>
</table>
<div>...</div>

此外,将某些属性迁移到样式标签中的 css 属性也是值得的。例如,代码片段中的背景、bgcolor、对齐和宽度属性。

抱歉,如果这不能解决问题,则很难在无法看到问题的情况下进行调试。

于 2012-04-04T00:26:25.097 回答