1

<li>次の関数を作成しましたが、リストを 1 つから複数に分割して、ごとに最大 8 を持てるようにすることは可能<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>";
    }
}
4

2 に答える 2

1

カウンターを追加することができ、そのカウンターが8に達すると、新しいカウンターを開始します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++;
} 
于 2012-07-03T10:00:07.100 に答える
1

わかりました、関数から直接 LI をエコーする代わりに、それらをすべて配列に追加することをお勧めします。一度配列に入ると、常に管理が容易になります。

LI の最終配列でarray_chunk()を使用すると、8 つのグループに分割されます。

于 2012-07-03T09:57:39.953 に答える