WHERE子句失败

时间:2013-10-28 09:03:55

标签: php sql

有人可以帮我解决我的代码吗?

我在数据库中有一个名为“Date”的表,其字段名称为“mydate”,它包含以下数据

2011-02-02 00:00:00
2011-01-02 00:00:00
2010-03-02 00:00:00
2010-01-03 00:00:00
2008-03-03 00:00:00
2008-02-03 00:00:00

然后我创建查询并获得其结果

$result=mysql_query("select DATE(mydate) as Date, subject, update_id, description, image from news ORDER BY Date DESC LIMIT 3")or die (mysql_error());

如您所见,我只从$ result中获得3个数据。现在,当我从$ result到达最后一行时,我将它存储在名为“$ _SESSION ['val']”的会话中。 因此,$ _SESSION ['val']的值是2010-03-02 00:00:00

之后,我将该会话存储到“$ val_date”并创建一个查询。这是我的代码:

$val_date = $_SESSION['val'];

    $result=mysql_query("select DATE(mydate) as Date, subject, update_id, description, image from news WHERE Date < $val_date  ORDER BY Date DESC LIMIT 3")or die (mysql_error());

    $count = mysql_num_rows($result);

问题是,$ count = 0应该是$ count = 3,因为它会根据查询读取以下数据:

2010-01-03 00:00:00
2008-03-03 00:00:00
2008-02-03 00:00:00

这可能是什么问题?

2 个答案:

答案 0 :(得分:2)

查询可能会失败,因为您忘记将字符串分隔符(单引号)放入mysql字符串中的日期。

mysql_query("select DATE(date) as Date, subject, update_id, description, image from news WHERE Date < '$val_date'  ORDER BY Date DESC LIMIT 3");

但你应该使用PDO或mysqli而不是旧的不推荐的mysql扩展。

答案 1 :(得分:0)

不确定,但是您说明您的专栏名为mydate,但您是否写了日期?

试试这个

$result=mysql_query("select DATE(mydate) as Date, subject, update_id, description, 
image from news ORDER BY mydate DESC LIMIT 3")or die (mysql_error());