我有一张有下列字段的桌子。event_id,month,day,year,event,place。我想要的是根据日期显示即将到来的记录。这是我的代码,它给了我所有的数据。
$news = mysql_query("SELECT * FROM tblupcomingevents limit 5") or die(mysql_error());
while($row = mysql_fetch_array($news))
<?php echo $row ["month"] ?>
<?php echo $row ["day"] ?>
<?php echo $row ["year"] ?>
<?php echo $row ["event"] ?>
<?php echo $row ["place"] ?>发布于 2015-01-28 07:27:13
首先,您应该将日期存储在一列an中,然后根据需要使用date函数动态使用它们,在这种情况下,您可以使用下面的查询
$news = mysql_query("SELECT * FROM tblupcomingevents WHERE date >= DATE(NOW()) limit 5") or die(mysql_error());在当前情况下,您也可以实现同样的目标,但是您必须从数据库中获得结果,然后循环并检查将来的情况,并将它们存储在最后的数组中,然后再使用该数组。
所以它需要负载,而不是优化的方法。
发布于 2015-01-28 07:37:30
最好的解决方案是以date()格式将日期存储在数据库中,然后使用以下查询
SELECT * FROM tblupcomingevents WHERE event_date >= CURRENT_DATE() order by event__date limit 5;发布于 2015-01-28 07:30:02
正确的解决方案可能是更改数据库以实际保存事件的date,然后对其进行查询:
SELECT * FROM tblupcomingevents WHERE event_date >= CURRENT_DATE() LIMIT 5如果这是不可能的,您可以使用str_to_date函数构造类似的行为:
SELECT *
FROM tblupcomingevents
WHERE STR_TO_DATE(CONCAT(`year`, `month`, `day`), '%Y%m%d') >=
CURRENT_DATE()
LIMIT 5https://stackoverflow.com/questions/28186723
复制相似问题