Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter中的博客和评论问题_Php_Codeigniter_Blogs - Fatal编程技术网

Php Codeigniter中的博客和评论问题

Php Codeigniter中的博客和评论问题,php,codeigniter,blogs,Php,Codeigniter,Blogs,目前我遇到了一个关于博客系统的问题。在这个系统中,用户将发布他们的博客,其他成员可以对此发表评论。当用户打开自己的主页时,他/她可以看到他/她写的博客,每个博客都附有评论- 博客1 .评论1 .评论2 博客2 .评论1 .评论2 .评论3 诸如此类。关于这一点,我有两张桌子 blog\u tbl(blg\u id、blg\u title、blg\u content、author\u id、crt\u date) comments\u tbl(cmmnt\u id、blg\u id、cmnt\

目前我遇到了一个关于博客系统的问题。在这个系统中,用户将发布他们的博客,其他成员可以对此发表评论。当用户打开自己的主页时,他/她可以看到他/她写的博客,每个博客都附有评论-

博客1 .评论1 .评论2

博客2 .评论1 .评论2 .评论3

诸如此类。关于这一点,我有两张桌子

  • blog\u tbl(blg\u id、blg\u title、blg\u content、author\u id、crt\u date)
  • comments\u tbl(cmmnt\u id、blg\u id、cmnt\u txt、作者id、crt\u日期)
  • 现在我可以显示所有的博客了。但在显示特定博客的评论时会遇到问题。 获取评论的步骤如下-

    • 我有一个数组
      $blog\u id
      ,其中包含最新的5个blog的id
    • $blog\u id
      传递到我的模型
    代码:

    • 现在,我将这个$cmnts结果数组传递给我的视图

    • 在这里,我认为我不能区别评论的帖子

    首先,
    $comnts
    包含每个博客的所有评论。如何区分。其次,在foreach循环中,我做错了什么,我没有显示任何内容。是因为它是一个数组吗

    <ul class="cmmnt">
        <?php foreach($comnts as  $value){ ?>
            <li>
                <div class=cmnt_container>
                    <div class=commnt_txt>
                        <span class="h5"><?php echo $value['comment_txt'] ;?></span>
                    </div>
                </div>
    </ul>
    

    您将所有注释放在同一个变量中$cmnts。您可以尝试以下方法:

        public function get_comments($blog_ids) 
        {
          foreach($blog_ids as $row)
          {
            // First declare $cmnts as array
            $cmnts = array();
            $blg_post_id = $row['blg_id'];
    
            $this->db->where('post_id', $blg_post_id);
            $get_comments = $this->db->get('comment_tbl');
            // You create separate array for each blog
            $cmnts['blg_id'] = $get_comments->result_array();
          }// Now you have array of comments  
            return $cmnts;          
         }// end of get_comments
    
    当您需要将评论与博客连接时,您可以这样做:

    <ul class="cmmnt">
       <?php foreach($comnts as  $value)
         { 
        if($value['blg_id'] == $blg['blg_id']):
       ?>
    <li>
      <div class=cmnt_container>
       <div class=commnt_txt>
         <span class="h5">
          <?php echo $value['comment_txt'] ;?>
         </span>
       </div>
        <?php endif; ?>
     </div>
    </ul>
    
    或者你可以试试这个(我不知道你是如何展示你的博客的):

    $blg['blg\U id']是您博客的id。

    这可能会有所帮助

    public function get_comments($blog_ids) 
    {
        foreach($blog_ids as $row)
        {
    
            $blg_post_id = $row['blg_id'];
            $this->db->where('post_id', $blg_post_id);
            $get_comments = $this->db->get('comment_tbl');
            $cmnts[] = $get_comments->result_array();//append the comments
    
        }
        return $cmnts;          
    }
    // end of get_comments
    
    请更改您的视图,如下所示

    <ul class="cmmnt">
    <?php 
         foreach($comnts as  $value)
         {
        foreach($value as  $value1)
        { ?>
        <li>
        <div class=cmnt_container>
        <div class=commnt_txt>
        <span class="h5"><?php echo $value1['comment_txt'] ;?></span>
        </div>
        </div>
        </li>
        <?php 
           } 
        }
     ?>
    

    您总是在覆盖注释数组,而必须大量附加注释。。在这种情况下,我想问你一些事情,我正在使用一种稍微不同的方法$参数=$posts['cnv_post_id']//$posts['cnv_post_id']保存当前的post id$comments=$this->post_model->get_comments($param);在模型公共函数get_comments($cnv_post_id){$get_comments=$this->db->query('select*from cnv_commentwhere blog_tbl='.$cnv_post_id.');if($get_comments->num_rows>0)返回$get_comments->result_array();但它不给出结果。但是如果我显式地给$param='100',它将返回结果。很抱歉,我没有得到您正在尝试的内容,请访问此链接
    public function get_comments($blog_ids) 
    {
        foreach($blog_ids as $row)
        {
    
            $blg_post_id = $row['blg_id'];
            $this->db->where('post_id', $blg_post_id);
            $get_comments = $this->db->get('comment_tbl');
            $cmnts[] = $get_comments->result_array();//append the comments
    
        }
        return $cmnts;          
    }
    // end of get_comments
    
    <ul class="cmmnt">
    <?php 
         foreach($comnts as  $value)
         {
        foreach($value as  $value1)
        { ?>
        <li>
        <div class=cmnt_container>
        <div class=commnt_txt>
        <span class="h5"><?php echo $value1['comment_txt'] ;?></span>
        </div>
        </div>
        </li>
        <?php 
           } 
        }
     ?>