-4

我正在做一个项目,我需要使用 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

实现这一点的最佳方法是让您<li>的 's 具有特定宽度,以便其中五个适合父容器,并且以下两个或您拥有的多个将下降到下一行。

<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 个产品和第三行 1 个产品。

于 2012-06-03T10:30:52.783 回答
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 回答