简体   繁体   English

mysql 查询结果分组

[英]mysql query results divide into group

From mysql query, I want make 5 results as a group wrap into a li .从 mysql 查询中,我想将 5 个结果作为一组包装成一个li how to?如何? thanks谢谢

$counter = 1;
while($row = mysql_fetch_array($result)){
echo '<li>';
if ( ($counter % 5) == 0 ){           
echo '<div class="title">'.$row['title'].'</div>';
}
$counter ++;
echo '</li>';
}
}

I want some html output like我想要一些 html output 之类的

<li><div class="title">something</div><div class="title">something</div><div class="title">something</div><div class="title">something</div><div class="title">something</div></li>
<li><div class="title">something</div><div class="title">something</div><div class="title">something</div><div class="title">something</div><div class="title">something</div></li>
<li><div class="title">something</div><div class="title">something</div><div class="title">something</div><div class="title">something</div><div class="title">something</div></li>
... <!-- 5 results in one li -->

You need to have your mod % either close the li or open the li , not deal with the div .您需要让您的 mod % 关闭li或打开li ,而不是处理div

So something like this:所以是这样的:

$counter = 1;
while($row = mysql_fetch_array($result)) {
    if ( $counter % 5 == 1 ) {           
        echo '<li>';
    }
    echo '<div class="title">'.$row['title'].'</div>';
    if ( $counter % 5 == 0 ) {           
        echo '</li>';
    }
    $counter ++;
}
if ( $counter % 5 != 1 ) {           
    echo '</li>';
}

Haven't tested it, but it should help set you on the right path.尚未对其进行测试,但它应该可以帮助您走上正确的道路。

You seem very close, how about:你看起来很亲密,怎么样:

$counter = 0;
while($row = mysql_fetch_array($result)){
        if (($counter % 5) == 0) {
            echo '<li>';
        }
        echo '<div class="title">'.$row['title'].'</div>';
        if (($counter % 5) == 4) {
            echo '</li>';
        }
        $counter ++;
    }
}
if ($counter % 5 != 4) {           
    echo '</li>';
}
$x = mysqli_num_rows($result);   
$counter = 0;

while($row = mysql_fetch_array($result)){
if ( ($counter % 5) == 0 ){
echo '<li>'
}           
echo '<div class="title">'.$row['title'].'</div>';
if (((($counter +1) % 5) == 0) || (($counter+1)==$x)){
echo '</li>'
} 
$counter ++;
}

I did not check it but the mysqli_num_rows variable can be used to close last.我没有检查它,但 mysqli_num_rows 变量可用于最后关闭。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM