2009-11-26 50 views
3

是否有可能,如果是這樣,我該怎麼做,選擇我的數據庫中的表中的所有條目,然後在一個組中顯示五個結果。PHP:以五個一組的形式顯示來自數據庫的條目?

含義:一個例子是,我有15條共在我的數據庫,然後我想提出這樣我的數據:

<div class="1-5">Record[1], Record[2], Record[3], Record[4], Record[5]</div> 

<div class="6-10">Record[6], Record[7], Record[8], Record[9], Record[10]</div> 

<div class="11-15">Record[11], Record[12], Record[13], Record[14], Record[15]</div> 

我不能完全肯定,如果我可以用它做SQL語句或我必須編寫某種「do ... while」或循環來檢索每組數據。我也想過有關數組的東西,但沒有得到結果。

感謝

  • Mestika

回答

4

我發現array_chunk()成爲這種事情非常有用。

// pull all the records into an array 
$query = mysql_query('SELECT * FROM mytable'); 
$rows = array(); 
while ($row = mysql_fetch_array($query)) { 
    $rows[] = $row; 
} 

// this turns an array into an array of arrays where each sub-array is 
// 5 entries from the original 
$groups = array_chunk($rows, 5); 

// process each group one after the other 
$start = 1; 
foreach ($groups as $group) { 
    $end = $start + 4; 

    // $group is a group of 5 rows. process as required 
    $content = implode(', ', $group); 

    echo <<<END 
<div class="$start-$end">$content</div> 

END; 
    $start += 5; 
} 

當然,你可以做到這一點沒有閱讀他們都在第一,但如果你打算無論如何要閱讀所有,它並沒有太大的差別及以上版本可能會遠遠大於實施更具可讀性當您讀取數據庫中的行時,可以找到適當的中斷條件。

1

說不上來,如果我理解這個問題的權利,但如果u希望將所有結果中的5組:


$i =1;  
while ($row = mysql_fetch_array($query)) { 
echo $row['name']."\n"; 
if ($i % 5 == 0) 
{ 
    echo 'hr'; // Or any other separator you want 
} 
$i++; 
} 
+0

這個答案相當不錯的,快捷的解決方案...謝謝哥們 – 2014-03-27 11:22:32

相關問題