0

記事にコメントの数を取得して、その数を表示させようとしています。コードは次のとおりです。

<?php
$amount_get = mysql_query("SELECT * FROM comment WHERE id='" . mysql_real_escape_string($_GET['articleid']) . "'"); 
$comments = mysql_num_rows($amount_get);

$grab = mysql_query("SELECT id, news_title, news_content, news_date, news_author FROM articles ORDER BY id DESC LIMIT 5");

while($row = mysql_fetch_array($grab)){
?>


<div class="pane">
    <li>               
        <h2><?php echo $row['news_title'] ?></h2>
        <div class="meta">
            <span class="color"> &bull; </span>
            <?php echo $row['news_date'] ?>
            <span class="color"> &bull; </span>
          </div>

          Comments: <?php echo $comments ?>

しかしなぜか「0」のまま。これは次のようになります。ここに画像の説明を入力

私の列はid、articleid、name、comment、date、ipです。

4

3 に答える 3

0

単一のクエリを使用できます。

$grab = mysql_query(
"SELECT a.id, a.news_title, a.news_content, a.news_date, a.news_author, count(*) as comment_count
FROM articles a 
LEFT JOIN comment c ON c.articleid = a.id 
ORDER BY a.id DESC LIMIT 5 GROUP BY a.id");

次に、代わりに

Comments: <?php echo $comments ?>

行う:

Comments: <?php echo $row['comment_count']; ?>

クエリが機能しているかどうか教えてください。Group by が正しく配置されているかどうかわかりません。

于 2013-03-04T16:07:37.253 に答える
0

where句はid = articleidを探しています。

必要なのは、articleid = articleid です。

$amount_get = mysql_query("SELECT * FROM comment WHERE articleid='" . mysql_real_escape_string($_GET['articleid']) . "'"); 
于 2013-03-04T16:01:50.273 に答える