"Today"、 "This Week"、 "This Month"、 "All Time"で記事を並べ替えようとしています。事は、私のクエリがあるテーブルの票を集計し、別のテーブルから記事を取得するということです。これは私にとって本当に複雑なクエリになります。今日、週、月ごとにPhPを注文していません。
とにかく、私はhttp://web.com/top.php?time=「ここにいくつかの時間」のようなページを持っていると私は、ユーザーが「ここにいくつかの時間を」ではなくの
$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"));
を選ぶ何時間に基づか記事を選択するには、次のコードを使用しますこれのどれもうまくいくとは思わない; DIはなぜ、私の意見では、しかし、私は比較的phpとmysqlの新しいです。誰もが問題が何であるかを提案することができますか?
システムの理解を深めるためのデータベース構造。
ストーリーテーブル
投票テーブルここ
スクリプトでsqlを実行する前に、変数$ dateをscreenに出力し、その値が何であるかを確認してください。それをphpmyadminで実行して、それがphpかsqlの問題かどうか確認してください。 – ChelseaStats
また、本当にitem_name(varchar)とid(int)を比較したいですか? – ChelseaStats
まあ、$ dateは正しいです。すべてのケースでそれをエコーしました – Ilja