目前我的博客系统存在问题。用户会发布博客,其他会员可以发表评论。当用户打开他自己的主页时,他/她可以看到他/她写的博客,每个博客附有评论。就像这样 -
Blog 1 .Comment1 .comment2 ...
Blog 2 .Comment1 .comment2 .Comment3 ....
依此类推。我有两个关于这个的表格
blog_tbl(blg_id,blg_title,blg_content,author_id,crt_date)
comments_tbl(cmmnt_id,blg_id,cmnt_txt,author_id,crt_date)
现在我可以显示所有博客了。但是在显示与特定博客相关的评论时会遇到问题。 要获取评论,这些是我的步骤 -
$blog_ids
,其中包含最新的5个博客的ID。$blog_ids
传递给我的模特代码:
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();
}
return $cmnts;
}
现在我将这个 $ 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>
答案 0 :(得分:0)
您将所有评论都放在同一个变量 $ 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>
或者你可以尝试这个(我不知道你是如何展示你的博客的):
<ul class="cmmnt">
<?php foreach($comnts[$blg_id] as $value){?>
<li>
<div class=cmnt_container>
<div class=commnt_txt>
<span class="h5"><?php echo $value['comment_txt'] ;?>
</span>
</div>
</div>
</ul>
$ blg ['blg_id'] 是您博客的ID。
答案 1 :(得分:0)
这可能会有所帮助
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
}
}
?>