2010-07-25 56 views
0

嘿,我想知道如何从我的数据库检索数据使用PHP来获得今日的顶级歌曲。检索数据Mysql/Php日期

现在,我使用

$result = mysql_query("SELECT tag, COUNT(*) AS the_tags FROM tags GROUP BY tag ORDER BY the_tags DESC LIMIT 16"); 

我也存储在标签表藏汉日刚开歌曲排行榜,在格式

2010年7月25日

所以月 - 日 - 年

我怎样才能限制结果标签与今天的日期?

谢谢:)

回答

2

另一种方式来做到这一点:

"SELECT tag, COUNT(*) AS the_tags FROM tags WHERE `date` = '" . date('m-d-Y') . "' GROUP BY tag ORDER BY the_tags DESC LIMIT 16"

但我更喜欢使用MySQL的日期(所以我会说看到artefacto的帖子)

1
...FROM tags WHERE date_field = DATE_FORMAT(CURDATE(), '%m-%d-%Y')... 
+0

它不应该是“%间%D-%Y”,他说,他被存储日期一个月后 - 日 - 年?否则,这是最好的方法。 – User123342234 2010-07-25 22:14:47

+0

@Josh是的,谢谢。 – Artefacto 2010-07-25 22:24:49

-2

我我也将日期存储在tags表格中,格式为07-25-2010

唯一的解决方案是改变这种荒谬的格式为适当的 - YYYY-MM-DD并将其存储在DATE类型的适当字段中。你很快就会改变它,减少未来的头痛。你没有别的办法。它是数据库体系结构的基础。将有大量的情况下,你自己的格式将无法正常工作。数据库将不得不每次为表中的每一行进行转换。这是杀死数据库的最有效方法。
更改代码变得

$sql = "SELECT tag, COUNT(*) AS the_tags FROM tags WHERE tag_date = curdate() 
        GROUP BY tag ORDER BY the_tags DESC LIMIT 16" 
$result = mysql_query($sql) or trigger_error(mysql_error().$sql); 
+1

这不是解决问题的唯一方法。我同意存储'MM-DD-YYY'是一个可怕的想法。 – 2010-07-25 20:12:54

+0

噢。也有成千上万的方法可以在一条腿上拍摄自己。当然。 – 2010-07-25 20:15:14

+0

如果要求在腿部自行拍摄,可以选择(救护车待命,坐下,而不是在窗台等):P – Wrikken 2010-07-25 20:52:16