php while-loop-关闭div

时间:2011-10-31 12:21:24

标签: php while-loop

我正在尝试制作某种分页系统。

每个页面最多包含4个来自数据库的元素。

每个页面都有一个div(div id ='p1'class ='pagedemo _current')。所以我有以下内容:

$i=0;
$pag=0;
$arr = array();

while($rowNews = mysql_fetch_array($rsNews)){
    $i++;
    $arr[$i] = $rowNews;

    if($i%4==1){
       echo "div id='p1' class='pagedemo _current'"
     }

  ...show content...

    if($i%4 ==0 ){
       echo"</div>"; //close the tag of class="pagedemo"
    }

}//end of while

当i为1时,打开div; 5; 9 ....并且在4的倍数(4; 8; 12 ...)时关闭 但是我还想关闭div,当$ i是最后一个数字时,即:如果只有6个结果我想在第6个元素之后关闭div。

我没有完成它

任何想法??

4 个答案:

答案 0 :(得分:2)

在你的循环之后检查$ i并关闭如果i%4!= 0(意味着尚未关闭)

$i=0;
$pag=0;
$arr = array();

while($rowNews = mysql_fetch_array($rsNews)){
    $i++;
    $arr[$i] = $rowNews;

    if($i%4==1){
       echo "div id='p1' class='pagedemo _current'"
     }

  ...show content...

    if($i%4 ==0 ){
       echo"</div>"; //close the tag of class="pagedemo"
    }

}//end of while
if ($i%4 !=0) {
echo"</div>"; //close the tag of class="pagedemo"
}

答案 1 :(得分:1)

您需要能够计算mysql结果中有多少行。然后将它与迭代器进行比较。

$i=0;
$pag=0;
$arr = array();

$total = mysql_num_rows($rsNews);
while($rowNews = mysql_fetch_array($rsNews)){
    $i++;
    $arr[$i] = $rowNews;

    if($i%4==1){
       echo "div id='p1' class='pagedemo _current'"
     }

  ...show content...

    if($i%4 ==0 || $i == $total){
       echo"</div>"; //close the tag of class="pagedemo"
    }

}//end of while

答案 2 :(得分:0)

在您之后添加此内容:

if ($i%4 != 0) {
  echo"</div>";
}

编辑:应该像@evildead

答案 3 :(得分:0)

设置变量以检测是否需要关闭并在结尾处检查:

while($rowNews = mysql_fetch_array($rsNews)){
    $i++;
    $arr[$i] = $rowNews;

    if($i%4==1){
       $close = true;
       echo "div id='p1' class='pagedemo _current'"
     }

  ...show content...

    if($i%4 ==0 ){
       $close = false;
       echo"</div>"; //close the tag of class="pagedemo"
    }

}

if($close)
echo"</div>";