私はいくつかのフィルタで簡単な検索システムを作ろうとしていますが、これらのフィルタの1つは、基本的にコメントの多い投稿とコメントの少ない投稿最終。 私はすべての投稿(タイトル、コンテンツ、画像、postId)を含む投稿用に1つと、すべてのコメント(コメントが投稿された投稿を確認するために)を含むコメント用に2つのテーブルを持っています。 私が使用して検索結果を表示するにはコメント数で投稿を並べ替え
$search = $db->prepare("SELECT comments.postId, comments.commentId, COUNT(comments.commentId) AS comms, posts.title, posts.postDate, posts.postId, posts.content,
FROM comments, posts, users
WHERE comments.postId = posts.postId AND posts.content LIKE ? OR posts.title LIKE ?
GROUP BY comments.commentId
ORDER BY comms DESC
LIMIT 100");
$search->execute(array("%$q%", "%$q%"));
::のように見える私は何かを検索するときに代わりに最初に最もコメントが投稿を表示するので、
foreach($search as $s) {
?>
<a href="stream.php?viewPost=<?php echo $s['postId'];?>">
<h5>
<?php echo $s['title']; ?>
</h5>
</a>
<small>Posted on <?php echo $s['postDate']; ?> </small>
<div class="divider"></div>
<?php
}
?>
しかし、それは実際に持っていること(1つのポストを示していますほとんどのコメント)。それは何度も何度も繰り返し表示されます。 削除した場合
GROUP BY comments.commentId
これはその投稿を1回だけ表示します。
私が実際に見ないので、誰かが私がここで間違っていることを教えてくれたら、
私はこのクエリを使用しても何も表示されません? – SirMaxime
@SirMaxime。 。 。私は、 'where'節にはマッチがないと仮定します。 –