Php Codeigniter中的博客和评论问题
目前我遇到了一个关于博客系统的问题。在这个系统中,用户将发布他们的博客,其他成员可以对此发表评论。当用户打开自己的主页时,他/她可以看到他/她写的博客,每个博客都附有评论- 博客1 .评论1 .评论2 博客2 .评论1 .评论2 .评论3 诸如此类。关于这一点,我有两张桌子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\
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日期)
- 我有一个数组
,其中包含最新的5个blog的id$blog\u 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
}
}
?>