2011-11-08 25 views
1

我想問的是如何從數據庫記錄,我的PHP代碼能夠按日期排序前一個日期,選擇這正是我想在我的界面中顯示:如何按數據庫中的上一個日期排序?

2011-10-01 

2011-10-01 

2011-10-01 

something here.. 


2011-10-02 

2011-10-02 

something here.. 


2011-10-03 

something here.. 
在我的數據庫以前的一些日期

得到了很多重複的日期,有的只是一個記錄,所以我需要梳理它讓我的界面更加清晰

這裏是我的代碼(但它不能正常工作):

$Current = date("Y-m-d" ,strtotime("now")); 

$query= mysql_query("SELECT date FROM staff WHERE date < '$Current'"); 
while($res=mysql_fetch_array($query)){ 
echo $res['date']; 
echo "something here"; 
} 

感謝

+0

之間的狀態沒有ü嘗試通過您的查詢 –

回答

1

你不能簡單地使用它嗎?

SELECT `date` FROM staff WHERE `date` < NOW() ORDER BY `date` 

或者(如果你只是需要不同的日期)

SELECT DISTINCT `date` FROM staff WHERE `date` < NOW() ORDER BY `date` 
+0

問題具有鮮明的添加順序是,他不會得到一個計數,而他的要求輸出顯示他在寫他的自定義行之前多次重複相同的日期。獨特的,你不會知道這是什麼。 – Andrew

+0

@Andrew:你是對的SQL,但相信我,我很難理解OP真正想要/要求... – Marco

+0

感謝評論,它按我的日期排序,但如何通過顯示不同來區分以前的日期錶行?例如:2011-10-01 在一個表格行中,2011-10-02在另一個表格行中 – Oscar

0
("SELECT count(*), date FROM staff WHERE date < '$Current' GROUP BY date ORDER BY date asc"); 

將它們分組計數,然後可以將每個日期寫出計數指示的次數,然後寫出您的附加值。

0

認爲你想可以通過在數據庫排序結果,並通過分組

SELECT date FROM staff WHERE date < '$Current' ORDER BY date ASC GROUP BY date; 
刪除重複達到什麼
+0

分組日期(相當於不同的)意味着OP不知道在他的輸出中重複一個日期的次數 - 他顯示多次打印同一日期,所以他必須計算日期,如果他們得到分組/不同。 – Andrew

+0

@安德魯是的,我有點不確定需要什麼。我想添加這個來顯示按日期分組的方法。 –

0

你需要的代碼是一個非常簡單的代碼。
你只需要瞭解循環的含義和「記住」迭代

//a variable to remember the old date 
$olddate = ''; 
//i named this variable $sql because it actually contains an sql query 
$sql = "SELECT date FROM staff WHERE date < '$Current'"; 
//I named this variable $res because it actually contains NOT sql query, but mysql RESource. 
$res = mysql_query($sql) or treigger_error(mysql_error()." ".$sql); 
//I named this variable $row because it actually represents a row from the database. 
while($row=mysql_fetch_array($res)) { 
    if ($olddate and $olddate != $row['date']) { 
    echo "something here"; 
    } 
    echo $row['date']; 
    $olddate = $row['date']; 
}