2011-02-17 97 views
0

我試圖獲取2個日期之間的記錄。日期以「yyyy-mm-dd」形式輸入到輸入類型=「文本」中(例如,我會在文本輸入框中輸入「2011-02-15」),然後發佈到下一頁查詢:2個日期之間獲取記錄有人選擇php mysql

$start = $_POST["start"]; 
$end = $_POST["end"]; 

$sql_query = "SELECT * FROM actionlist WHERE date>='{$start} 00:00:00' AND date<='{$end} 23:59:59' ORDER BY id"; 
$result = mysql_query($sql_query); 

的表格「的ActionList」的記錄已被稱爲字段,「日期」,並用「$日期=日期(創建記錄時,該系統會自動輸入‘YMD H:I:S’ )」。

無論如何,我似乎無法得到任何記錄被選中。我需要以某種方式處理我的$ start和$ end變量嗎?提前致謝。

回答

1
$start = mysql_real_escape_string(trim($_POST["start"])); 
$end = mysql_real_escape_string(trim($_POST["end"])); 

$sql_query = "SELECT * FROM actionlist WHERE date BETWEEN '".$start." 00:00:00' AND '".$end." 23:59:59' ORDER BY id"; 
$result = mysql_query($sql_query) or die(mysql_error()); 

Ed它:trim(),以防輸入表單中有一些不需要的空間;有點衛生的話,和利用之間,大家都基於

1

嘗試這種方式

SELECT * FROM actionlist WHERE date BETWEEN 'start' AND 'end' 
+0

謝謝您的回答下面的評論

編輯2已經建議權之前,我(該死,我在寫這麼慢...)。仍然無效 – 2011-02-17 20:05:34

3

您可以使用之間獲得的信息,你想

$sql_query = "SELECT * FROM actionlist WHERE date BETWEEN '$start' AND '$end' ORDER BY id";

但是,你需要確保開始和結束都是有效的,並且逃脫,等。 。防止sql注入等

+0

謝謝。我想那是我的問題。你如何確保它們是有效的......此外,表中的日期格式化爲Ymd H:i:s,並且我只想輸入Ymd部分... – 2011-02-17 20:08:19

+0

因此原文:$開始00:00:00和$結束23:59:59而不是$開始和$結束。非常感謝您的幫助。 – 2011-02-17 20:09:27

相關問題