将PHP循环分成2个列表 [英] Split PHP loop into 2 lists

查看:38
本文介绍了将PHP循环分成2个列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经构建了以下函数,但是是否可以将其从一个列表中拆分成多个列表,这样每个<ul>最多可以有8个<li>?

I have built the following function, but is it possible to get it to split my lists from one into more so I can have a maximum of 8 <li>'s per <ul>?

function buildProductsMenu($base) {

    $sql = "SELECT *
            FROM tbl_category";
    $result     = dbQuery($sql);
    while ($row = dbFetchAssoc($result)) {
    echo "<ul>";        
        echo "<li class='title'>$row[cat_name]</li>";
            $sqlProd = "SELECT *
                FROM tbl_product WHERE cat_id = $row[cat_id]";
            $resultProd     = dbQuery($sqlProd);
            while ($rowProd = dbFetchAssoc($resultProd)) {
                extract($rowProd);
                echo "<li><a href='".$base."products/".strtolower($row['cat_name'])."/".strtolower($pd_name)."'>".$pd_name."</a></li>";
            }       
    echo "</ul>";               
    }
}

与jurgemaister解决方案一起使用

function buildProductsMenu($base) {

    $sql = "SELECT *
            FROM tbl_category";
    $result     = dbQuery($sql);
    while ($row = dbFetchAssoc($result)) {
        echo "<ul>";        
        echo "<li class='title'>$row[cat_name]</li>";
        $sqlProd = "SELECT * FROM tbl_product WHERE cat_id = $row[cat_id]";
        $resultProd     = dbQuery($sqlProd);
        $counter = 1;
        while ($rowProd = dbFetchAssoc($resultProd)) {
            extract($rowProd);
            if($counter % 12 == 0) {
                $counter = 1;
                echo "</ul><ul style='margin-top:25px;'>";
            }
            echo "<li><a href='".$base."products/".strtolower($row['cat_name'])."/".strtolower($pd_name)."'>".$pd_name."</a></li>";
            $counter++;
        }
        echo "</ul>";
    }
}

推荐答案

您可以添加一个计数器,当该计数器达到8时,您将启动一个新的ul.

You can add a counter, and when that counter reaches 8, you start a new ul.

$counter = 1;
while ($rowProd = dbFetchAssoc($resultProd)) {
    extract($rowProd);

    if($counter % 8 == 0) {
        $counter = 1;
        echo "</ul><ul>";
    }

    echo "<li><a href='".$base."products/".strtolower($row['cat_name'])."/".strtolower($pd_name)."'>".$pd_name."</a></li>";
    counter++;
} 

这篇关于将PHP循环分成2个列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆