从mysql表中显示系列产品

时间:2012-06-03 10:08:01

标签: php mysql

我正在开发一个项目,我需要使用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我无法从表中获取产品并显示其名称。

由于

3 个答案:

答案 0 :(得分:2)

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

    if ($index % 5 == 0) {
        echo "</ul><ul>";
    }
}
echo '</ul>';

答案 1 :(得分: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>

试试。

答案 2 :(得分:0)

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

<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产品。