如何在首页统计评论的条数
本帖最后由 haoren26 于 2011-10-8 23:00 编辑CI version:2.0.3
Environment:WAMP2.1 Windows2003
我写了一个博客,首页如下
我现在想添加一个功能,就是在“评论”旁边显示该文章的评论条数,希望的样子是这样“评论(X)”,X为评论条数。
但我在实现的时候遇到了困难,因为首页列出文章的方法是在Model里用$query = $this-db->get('article'),然后把$query 传给Controller,Controller里$data['list_article'] = $this->Mblog->list_article() 然后 传给视图$this->load->view('index_view',$data) 视图再用foreach循环方法列出所有文章,代码如下
index_view.php
<?php foreach($list_article as $arc_row):?>
<hr>
<h2><?=$arc_row->title?></h2>
<p><?=$arc_row->article_author.' '.$arc_row->post_time?></p>
<p><?=$arc_row->article_content?></p>
<p><?=anchor('blog/comment/'.$arc_row->id,'评论')?></p>
<?php endforeach;?>
我如果想在“评论”旁显示评论条数,那么我就得在 <p><?=anchor('blog/comment/'.$arc_row->id,'评论')?></p>的"</p>"标签前面加一个变量,而且必须是循环变量,因为有不止一篇文章,也就是说得再用一个foreach循环。
想想很复杂,
困难1:如何得到一个包含所有文章评论条数的数组;
困难2:foreach循环该放在原来那个foreach循环的外面还是里面,或者,这个例子根本用不了foreach循环?
附上我的数据库结构
'article'表
'comment'表
这个困难在哪里?你获取当前列表之后获取主题ID查询数据库就行了。 longjianghu 发表于 2011-10-8 23:39 static/image/common/back.gif
这个困难在哪里?你获取当前列表之后获取主题ID查询数据库就行了。
请指教SQL语句怎么写??
你这样的话需要查询两次是吧?
查询两次得到两个数据集,我就要用两次foreach循环,这两个循环如果嵌套起来。。。我觉得不现实
最好是一次查询得到一个记录集,这样就好了 还有一个更简单的方法,你设计数据库的时候增加一个评论数的字段,每当一个主题有一个评论的时候就+1,这样就不用重复查询了。这个是你设计的问题 longjianghu 发表于 2011-10-9 10:58 static/image/common/back.gif
还有一个更简单的方法,你设计数据库的时候增加一个评论数的字段,每当一个主题有一个评论的时候就+1,这样 ...
好办法!已经成功了 haoren26 发表于 2011-10-9 12:49 static/image/common/back.gif
好办法!已经成功了
Good luck longjianghu 发表于 2011-10-15 16:02 static/image/common/back.gif
Good luck
有没有办法在mysql数据库里面设置一个触发器,当comment表里面增加一条记录时,就自动在article表里加1,貌似触发器只支持当前表操作。。就是类似这种功能的东西有没有? haoren26 发表于 2011-10-23 00:07 static/image/common/back.gif
有没有办法在mysql数据库里面设置一个触发器,当comment表里面增加一条记录时,就自动在article表里加1, ...
mysql是支持的吧,我用的mysql5 select *,(select count(*) from comment where article_id=article.id) as comments from article
一条sql语句不就都出来了咩.... zhouli520 发表于 2011-10-24 15:03 static/image/common/back.gif
一条sql语句不就都出来了咩....
啊,很好用!谢谢!
不过我看了wordpress的数据库结构,他的文章表里也有一个评论数的字段,具体的PHP代码还没看,不知道是不是通过php代码去修改评论数字段的值
页:
[1]
2