我正在使用MySQL数据库,通过PHP访问它,我希望它不显示今天的日期旧条目。我有一点时间来订购它们。我以前工作过,现在不是。我按ASC的顺序排序,按日期,罚款,但它仍然显示较旧的条目。我知道我的PHP已经过时了,但任何方法都适用于我。这是我的代码。
对不起,如果我作为一个完整的ditz离开..如果我不知道,我来到这里,而且我对此相对较新,并且总是挂在约会。
到目前为止,有人建议: 更改“日期”列的名称。 “date”存储为datetime,而不是字符串,因此要将其更改为int
// this is where its set to show today and future dated entries
$sql = "SELECT * FROM $db WHERE date >= '$today' ORDER BY date ASC" or die(mysql_error());
$getit = mysql_query ( $sql, $conn );
print "<br><b><font size=4>Appointments Coming Up</b></font>";
while($row = mysql_fetch_array($getit, MYSQL_ASSOC))
{
print "<br>";
$row[date] = date("D-M-d-Y", strtotime($row[date]));
print "<br><font size=3><b>{$row['doctor']} at {$row['time']} {$row['ampm']} on $row[date]</font>";
}
解决我所做的只是将数据库中的日期列更改为“dateappt”并且它有效。感谢大家的帮助。
答案 0 :(得分:1)
首先,“日期”是一个保留字(区分大小写具有依赖性),因此您应该更改此列的名称。
MySQL仅对日期使用'YYYY-MM-DD'格式,因此您的格式必须与此匹配(您的$今天)。
http://dev.mysql.com/doc/refman/5.0/en/using-date.html
使用时间戳可能更好。
还有其他操纵日期的方法: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
答案 1 :(得分:0)
您应该检查mysql中字段“date”的类型,如果是datetime,则将其更改为“int”
答案 2 :(得分:0)
这个答案假设您将日期存储为字符串,因为这似乎是可能的罪魁祸首。
当您的日期存储为字符串(char()
,varchar()
),而非实际日期(date
,datetime
)时。这意味着它们将被排序为字符串而不是日期。所以12-31-2009
在 01-01-2014
之后来到,因为MySQL看到第一个字符“0”并将其放在以“1”开头的日期之前。当您为日期值使用正确的数据类型时,MySQL会将它们排序为日期而不是字符串,然后12-31-2009
在 01-01-2014
之前来到。