在两个日期之间获取有人选择php mysql的记录

时间:2011-02-17 19:55:52

标签: php mysql date select post

我正在尝试获取两个日期之间的记录。日期以“yyyy-mm-dd”的形式输入到输入类型=“文本”中(例如我将“2011-02-15”输入到文本输入中)然后发布到下一页查询:

$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”中的记录有一个名为“date”的字段,当使用“$ date = date('Y-m-d H:i:s')”创建记录时会自动输入该字段。

无论如何,我似乎无法获得任何记录。我需要以某种方式处理我的$ start和$ end变量吗?提前谢谢。

3 个答案:

答案 0 :(得分:3)

您可以使用两者来获取所需信息

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

但是你需要确保开始和结束是有效的,并且转义等等。以防止sql注入等等

答案 1 :(得分:1)

试试这种方式

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

答案 2 :(得分: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());

编辑:trim(),以防输入表单中有一些不需要的空间;然后使用BETWEEN,就像每个人都在我面前建议的那样(该死的我写得太慢了......)

根据以下评论编辑2