[英]How to display total comments
Whatsup代码点火器! 我想显示我使用codeigniter构建的博客的全部评论。 在我的控制器中,我有:
function index() {
$data['query'] = $this->blog_model->get_all_entries();
$this->load->view('blog/index',$data);
}
函数index()获取所有帖子。 我有
public function post($id) {
$data['query'] = $this->blog_model->get_post($id);
$data['comments'] = $this->blog_model->get_post_comment($id);
$data['post_id'] = $id;
$data['total_comments'] = $this->blog_model->total_comments($id);
$this->load->view('blog/index',$data,TRUE);
$this->load->helper('form');
$this->load->library(array('form_validation','session'));
//validation rules for post function
$this->form_validation->set_rules('commentor','Name','required');
$this->form_validation->set_rules('email','Your email','required|valid_email');
$this->form_validation->set_rules('comment','Comment','required');
if($this->blog_model->get_post($id))
{
foreach($this->blog_model->get_post($id) as $row)
{
//set page title
$data['title'] = $row->entry_name;
}
if($this->form_validation->run() == FALSE)
{
//if validation runs FALSE
$this->load->view('blog/post',$data);
}
else
{
//if valid
$name = $this->input->post('commentor');
$email = strtolower($this->input->post('email'));
$comment = $this->input->post('comment');
$post_id = $id;
$this->blog_model->add_new_comment($post_id,$name,$email,$comment);
$this->session->set_flashdata('message', '1 new comment added!');
redirect('blog/post/'.$id);
}
}
else
show_404();
}
基本上,post($ id)获得一个ID为id的帖子(单个帖子)并显示评论。 我可以在单个帖子中打印评论总数。 但是我如何在列出所有帖子的index()函数中打印总评论数。 谢谢!
尝试在模型中执行类似的操作
public function fetch_all_comment()
{
$query = $this->db->get('comments');
return $query->result();
}
在控制器中
$data['all_comments'] = $this->model_name->fetch_all_comment();
$this->load->view('viewname',$data);
视野中
为此,您必须在视图中调用模型。 例如,如果要显示帖子名称。
在视图中加载模型
foreach ($all_comments as $row)
{
echo $row->post;
echo $total_no_post = $this->model_name->fetch_total_no_of_comment_in_post($row->postid);
}
计算此函数中的注释数fetch_total_no_of_comment_in_post
使用此活动记录
$this->db->select("post_id , count(comment) as total_comments");
$this->db->group_by('post_id');
$query = $this->db->get('comments');
这将生成此sql查询
SELECT
post_id,
count(comment) as total_comments
FROM comments
GROUP BY post_id
表示这将选择帖子,每个评论的帖子数并按帖子分开。 为了理解这是表格结构
Comments
id count(comment) post_id
现在,查询将首先获取所有评论,然后将使用分组依据来分隔帖子,为您提供每个帖子的总评论。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.