繁体   English   中英

如何显示总评论

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM