【问题标题】:News comments count新闻评论数
【发布时间】:2015-11-20 22:10:24
【问题描述】:

我已经厌倦了寻找我的新闻评论系统的解决方案。 我有的。 我有 2 个不同的 mysql 表项(id、title、category_id、详细信息)和 cmets(id、item_id、comment) 如果我有单个消息,那么计数就可以了,如图所示: Single news

代码:

if (!empty($comments)) {
$comm = count($comments);
}  else {
$comm = 0;
}    

但如果我使用相同的代码类别视图,结果是: Category view

如果我使用代码:

$sqls = mysql_query("SELECT c.item_id,
       COUNT(c.comment) 
FROM   comments c 
       RIGHT JOIN items i 
         ON c.item_id = i.id 
GROUP  BY c.item_id");
$comm = mysql_num_rows($sqls);

$smarty->assign('comm',$comm);

结果是:一些 cmets

如何使Category View 显示正确数量的cmets 成为可能?

【问题讨论】:

  • 如果可以的话,你应该stop using mysql_* functionsThese extensions 已在 PHP 7 中删除。了解 PDOMySQLiprepared 语句并考虑使用 PDO,it's really not hard
  • 使用group by categor_id, item_id和`select gategory_id,item_id,count(item_id)
  • 请问您的预期结果输出是什么?
  • 输出结果:News item1 - (1) News item2 - (14) News item1 - (12) --- (inside cmets number)
  • 你的问题解决了吗?

标签: php mysql comments smarty


【解决方案1】:

试试这个例子。结果与下面的屏幕截图相同,但有一些背景颜色来区分差异。当然你应该改成你自己的连接和布局。

<?php
$db = new PDO('sqlite:news.db');//change to your own
$sql = $db->prepare("
    SELECT item.id, item.title, item.details, comments.comment, COUNT(comments.id) AS NumberOfComment
    FROM item LEFT JOIN comments ON item.id = comments.item_id
    GROUP BY item.id ORDER BY item.id");            
$sql->execute();
$row = $sql->fetchAll();
//get comment
$comment = $db->prepare("SELECT comment FROM comments WHERE item_id = ?");
foreach ($row as $rows){
    echo "<br>";
    echo "Title: ".$rows['title'];
    echo "<br>";
    echo "Details: ".$rows['details'];
    echo "<br>";
    echo "<i>".$rows['NumberOfComment']." comments </i>";
    echo "<br>";
    $comment->execute(array($rows['id']));
    $comments = $comment->fetchAll();
    echo '<div style="background-color:pink;">';
    foreach ($comments as $showcomment){
    echo $showcomment['comment'];
    echo "<br>";
    }
    echo "</div>";
    echo "<br>";    
}
?>

示例项目表

示例评论表

结果是……

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多