Получить данные Mysql / Php, где дата - PullRequest
0 голосов
/ 25 июля 2010

эй, мне интересно, как получить данные из моей базы данных, используя php, чтобы получить лучшие песни сегодня.

Сейчас я просто получаю лучшие песни, используя

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

Я также храню дату в таблице тегов так же, в формате

07-25-2010

так Месяц - День - Год

Как я могу иметь этоограничить результаты тегами с датой сегодняшнего дня?

Спасибо:)

Ответы [ 3 ]

2 голосов
/ 25 июля 2010

Еще один способ сделать это:

"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 (так что я бы сказал, см. Сообщение артефакта)

1 голос
/ 25 июля 2010
...FROM tags WHERE date_field = DATE_FORMAT(CURDATE(), '%m-%d-%Y')...
0 голосов
/ 26 июля 2010

Я также храню дату в таблице тегов, в формате 07-25-2010

Единственное решение - изменить этот нелепый формат на подходящий - ГГГГ-ММ-ДД и сохранить его в соответствующем поле типа 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...