我正在使用此代码,因此我可以计算每篇文章的评论数量
SELECT *, COUNT(comment_id) as count
FROM article_comments
WHERE article_id =colname
GROUP BY article_id
这是我的评论表看起来像
http://i54.tinypic.com/2cdu3dk.png
我想将这些号码保存在另一个表格中(文章表格......文章旁边的每个数字),就像这样
http://i54.tinypic.com/2dgm82u.png
当用户输入评论时......号码自动更改
有人帮我提供代码 或者如果有其他方法可以做到这一点我知道这是一个很长的问题 但是我一直试图解决这个问题。比如.forever
感谢名单
答案 0 :(得分:2)
您可以设置TRIGGER
,每次添加评论时都会更新评论计数表。或者,您只需在评论页面中UPDATE
查询后立即添加INSERT
查询。
答案 1 :(得分:1)
$query = mysql_query("SELECT * FROM article_comments WHERE article_id =".$youarticleId);
//the number of comments is :
$number_Of_Comments = mysql_num_rows($query);
//save it to another table
$query2 = mysql_query("UPDATE yourTable set numberOfComments =".$number_Of_Comments);
答案 2 :(得分:1)
您可能不需要查找表。 1篇文章有很多评论。因此,请构建您的评论表之类的内容(添加文章字段);
id | article | content
-------------------------
1 | 1 | Comment 1 for article 1.
2 | 1 | Comment 2 for article 1.
3 | 2 | Comment 3 for article 2.
显示文章时,请使用以下查询列出评论;
SELECT a.id, a.content FROM articles a WHERE a.article = :myArticleId
创建新评论时:
INSERT INTO comments (article, content) VALUES (:currentArticleId, :content)
UPDATE article SET commentCount = commentCount + 1 WHERE article = :currentArticleId
文章表看起来像这样;
id | commentCount | content
------------------------------
1 | 0 | Article with 0 comments.
2 | 3 | Article with 3 comments.
这需要你做一些工作,但它比缺点有更多的好处。
您提出的解决方案有两大缺点;
也应始终避免触发器。它们创造了“神奇”条件 - 您可以在不知情的情况下更改数据库。触发器通常比代码更难改变。
答案 3 :(得分:0)
关于保存评论,请尝试:
update table_where_you_count_the_comments set number_of_comments = number_of_comments +1 where article_id = theID limit 1;
或寻找mysql触发器。
答案 4 :(得分:0)
你要求sql服务器同时选择所有内容和计数id,使用其中一个并给它一个关闭的地方,宾果!