2011-10-23 278 views
0

我創建廣告的網站。我想有這樣的按日期排序/分組數據(日)?

週六10/22/2011(頭)

產品名稱1 - 城市名單 - $ 100

產品名稱2 - 城市 - $ 74

產品名稱3-城市 - $ 500

週日10/23/2011(頭)

產品名稱4個城市 - $ 150

產品名稱5城市 - $ 220

產品名稱6-城市 - $ 10

我的代碼是完全排序列表從最新到最舊的,但我想添加一些東西到while循環來打印出標題(粗體)(2011年10月22日星期六)。 基本上我想組的名單,他們被貼在 一天名下這裏是我的代碼:

$sql = "SELECT post_id,city, title, price, imgurl FROM md_post WHERE category='$cat' AND city='$city' ORDER BY timeStamp desc"; 

$result = mysql_query($sql); 

while($row = mysql_fetch_array($result)) 
    { 
echo "<a href='adid.php?id=".$row['post_id']."'>". $row['title']. " - ". $row['price']." - ".$row['city']."</a>"; 
} 

回答

1

假設時間戳Unix時間戳:

$sql = "SELECT post_id, city, title, price, imgurl, timeStamp FROM md_post WHERE category='$cat' AND city='$city' ORDER BY timeStamp desc"; 

$result = mysql_query($sql); 

while($row = mysql_fetch_array($result)) 
{ 
    if (!isset($dateold) || $dateold != date('d',$row['timeStamp']) { 
     echo '<strong>'.date('l m/d/Y',$row['timeStamp']).</strong><br />; 
    } 
    echo "<a href='adid.php?id=".$row['post_id']."'>". $row['title']. " - ".$row['price']." - ".$row['city']."</a>"; 
    $dateold = date('d',$row['timeStamp']); 
} 

時,它不是一個UNIX時間戳,但有效的時間,你可以改變的timeStamp的首次亮相UNIX_TIMESTAMP(timeStamp)

+0

非常感謝。那很快。這樣做吧:) –

+0

這將工作僅在每一行都有不同的日期也不會下一個頭球當天組條目......此外,還有少了一些'''這樣的代碼將與語法錯誤和失敗的通知關於未定義的常量 –

+0

我不能upvote。我當然會以這種方式感謝你^ _ ^。它告訴我它需要15點聲望。我在這裏是新的 –

2
  1. 添加時間戳到您選擇字段
  2. 引入新的變量保存上次使用時間戳
  3. while環路檢查如果日期形式上次使用的時間戳從當前行不同,如果是的話基於當前行時間戳打印頭,將其指定爲上次使用時間戳,然後打印其餘部分。
+0

我感謝你的幫助:)我按照這些步驟得到它 –