2012-06-03 42 views
-4

我正在一個項目上工作,我需要使用php顯示來自mysql表的產品。從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我無法從表格中獲取產品並顯示其名稱。

感謝

+2

-1因爲使用計數器和if語句應該如此明顯。你有沒有想過呢?你有什麼嘗試? –

回答

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

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

+1,因爲它不在查看圖層中使用數據庫調用。小調整 - 如果行數可以被5整除,則會創建一個不必要的無序列表。不過,解決這個問題可能是OP的任務':)'。 – halfer

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> 

嘗試。

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和1種產品的第三排。

相關問題