-4

私は1つのプロジェクトに取り組んでおり、phpを使用してmysqlテーブルの製品を表示する必要があります。

私のデザインはそういうもので、5つの商品が一列に並んでいます。

したがって、テーブルに7つの製品がある場合、2行になります。

first row 5 products
second row 2 products

私は、製品と行を次のように表示するために使用<UL>しています<LI>

<UL>
<li>first</li>
<li>2nd</li>
<li>3rd</li>
<li>4th</li>
<li>5th</li>
</ul>

<UL>
<li>6th</li>
<li>7th</li>
</ul>

foreachループを使用して上記のようなコードを取得する方法を考えています。

使用するforloop with 5 incrementと、テーブルから商品を取得して名前を表示できません。

ありがとう

4

3 に答える 3

2
echo '<ul>';
foreach ($yourResultSet as $index=>$data) {
    echo '<li>' . YourOutput . '</li>';        

    if ($index % 5 == 0) {
        echo "</ul><ul>";
    }
}
echo '</ul>';
于 2012-06-03T10:19:58.153 に答える
0
<ul>
<?php $i = 0; ?>
<?php while($row = mysql_fetch_array($result)): /* Used to loop through a resultset*/ ?>
    echo "<li>".$row['data'].</li>";
<?php 
    $i++; // Increment by one every loop
    if($i == 5){ // We've hit the fifth iteration
        echo '</ul><ul>'; // Close the UL and open a new UL
        $i = 0; // Set $i back to 0 and continue looping
    }
    endwhile;
?>
</ul>

それを試してみてください。

于 2012-06-03T10:18:11.523 に答える
0

これを実現する最善の方法は<li>、5つが親コンテナに収まり、次の2つまたはいくつでも次の行にドロップするように、の幅を特定にすることです。

<style>
#container {
    width: 350px;
    background: red;
    padding:0;
    margin: 0;
} 
#list li
{
    display: inline-block;
    width: 50px;
    height: 50px;
    list-style-type: none;
    background:blue;
    margin: 2px;
    padding: 0;
}
</style>

<div id="container">
    <ul id="list">
    <?php 
    while($row = mysql_fetch_array($result))
    {
        echo '<li>' . $row['data'] . '</li>'; 
    }
    ?>
    </ul>
</div>

サイズを少し試す必要がありますが、すべてが機能するはずです。11個の製品がある場合、これは2行の5と3行目の1製品を実行する必要があります。

于 2012-06-03T10:30:52.783 に答える