2013-08-24 136 views
0

我會盡我所能解釋:按日期分組mysql結果並回顯到帶有分頁的php頁面

我正在從mysql數據庫檢索記錄以輸出到php頁面。

結果需要按日分組,也有分頁。

實施例:

8月24日

  • 結果1(例如標題,描述,照片)
  • 結果2(例如標題,描述,照片)
  • 結果3(例如標題,描述,圖片)

8月23日

  • 結果1(例如,標題,描述,照片)
  • 結果2(例如標題,描述,照片)
  • 結果3(例如標題,描述,照片)

分頁: [1] [2] [3 ] [4]

上述示例僅用於說明,因爲每個頁面上都會有4天值得的結果。我知道每個頁面在初始頁面之後需要通過向頁面發佈參數來抵消4天。

但是我無法弄清楚白天顯示結果的邏輯。

我知道一段時間或foreach循環是需要的,可能是循環內的循環來獲得每一天的所有結果。

我一直在尋找網絡一段時間,似乎無法找到任何示例或指導如何這樣做。

我不希望代碼勺子餵給我,只是如何處理這種情況的邏輯。

如果有人能幫助,我將不勝感激。

謝謝。

+0

你可以發佈你的表格結構嗎?創建表sql查詢或幫助我們理解你的表結構的東西。 – ninty9notout

回答

0

經過簡單的數據庫查詢(記住,您需要LIMIT - 字面意思 - 允許分頁),您可以通過檢查每個循環期間是否爲新的一天來將數組分隔爲幾天。

$lastday = null; 
while($entry = mysqli_fetch_assoc($result)) { 
    if($lastday != $entry['day']) { 
     $lastday = $entry['day']; 
     echo '<h3>' . $lastday . '</h3>'; 
    } 
    // echo the entry result (title, description, picture) 
} 

您可能要調整LASTDAY和入門[「天」]參數,以反映無論您使用的日期格式(無論是MySQL中,UNIX或字符串)。另外,我使用了3級標題作爲示例,但是您應該選擇任何符合邏輯的上下文。

+0

哦,對不起,勺子餵你的代碼,但這只是解釋這個概念的最合理的方式。 – LS97

+0

非常感謝您的幫助,我現在可以根據需要顯示頁面。不過,我想知道如何將結果限制爲只有4天的記錄,因爲我不想每天都要顯示數據庫中的第一條記錄。請你指教? – ED92

+0

您必須在查詢中添加一個WHERE子句,以指定要輸出的時間間隔。例如,'SELECT * FROM table WHERE date_field start_4dayperiod' – LS97