PhP заказ на сегодня, неделю, месяц ... Не работает - PullRequest
2 голосов
/ 22 декабря 2011

Я пытаюсь отсортировать статьи по «Сегодня», «На этой неделе», «В этом месяце», «Все время». Дело в том, что мой запрос суммирует голоса из одной таблицы и получает статьи из другой таблицы, это делает запрос действительно сложным для меня, и я не уверен, правильно ли я это делаю.

В любом случае, у меня есть страница типа http://web.com/top.php?time="some время здесь " И я использую следующий код для выбора статей, основываясь на том, какое время пользователь выбирает вместо " некоторое время здесь "

$time = preg_replace('#[^a-z]#i', '', $_GET["time"]);

    if (!$time) { //Today
    $date = "WHERE TO_DAYS(NOW()) - TO_DAYS(stories.st_date) = 1";
    }
    else if ($time == "Week") { //This Week
    $date = "WHERE TO_DAYS(NOW()) - TO_DAYS(stories.st_date) <= 7";
    }
    else if ($time == "Month") { //This Month
    $date = "WHERE TO_DAYS(NOW()) - TO_DAYS(stories.st_date) <= 31";
    }
    else if ($time == "All") { //All Time
    $date = "";
    }
    else {
    header("Location: http://www.web.com/");
    exit;
    }

$sql = ("SELECT stories.*, SUM(votes.vote_value) as 'total_votes' FROM stories JOIN votes ON stories.id = votes.item_name ".$date." GROUP BY stories.id ORDER BY total_votes DESC LIMIT 10") or die (mysql_error("There was an error in connection"));

Ничего из этого, похоже, не работает; D Я не понимаю, почему, по моему мнению, это должно, но, опять же, я относительно новичок в php и mysql. Так может кто-нибудь подсказать, в чем здесь проблема?

Моя структура базы данных для лучшего понимания системы.

Таблица рассказов

enter image description here


Таблица голосов

enter image description here

Ответы [ 2 ]

1 голос
/ 22 декабря 2011

1001 * попробовать *

    SELECT stories.*, SUM(votes.vote_value) as 'total_votes' 
    FROM stories JOIN votes ON stories.id = votes.item_name 
    WHERE votes.item_name=$date 
    GROUP BY stories.id ORDER BY total_votes DESC LIMIT 10

или аналогичный, подумайте о том, чего вы хотите достичь, и логику, а затем переписать свой SQL-запрос в phpmyadmin, пока вы не получите правильный вывод, прежде чем поместить его в php.

1 голос
/ 22 декабря 2011

начать здесь

для ознакомления с функцией даты PHPs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...