Codeigniter表加入然后显示标签问题

时间:2010-07-13 00:09:40

标签: php codeigniter join views

我遇到一个问题,涉及博客帖子并显示另一个表格中的标记词。 我似乎能够很好地从表中提取信息,但是当我尝试显示帖子和标签时,我会在每个帖子中获得一个标签。换句话说,如果我有一个帖子的7个标签,我会得到该帖子的7个迭代,每个标签有一个标签,而不是1个帖子,有7个标签。

我的控制器(确实有关于$ this-> db-> get(帖子,标签)的问题是正确的

$this->db->order_by('posts.id', 'DESC');
$where = "publish";
$this->db->where('status', $where);
$this->db->join('tags', 'tags.post_id = posts.id');
$this->db->limit('7');
$query = $this->db->get('posts', 'tags');
if($query->result())
    $data = array();
    {
        $data['blog'] = $query->result();
    }
    $data['title'] = 'LemonRose';
    $data['content'] = 'home/home_content';

    $this->load->view('template1', $data); 

观点。      $ limit = 5; //我们应该完整展示多少个帖子?      $ i = 1; //计数

foreach ($blog as $row):
$permalink =  "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].$_SERVER['QUERY_STRING'];
$url = CompressURL ("$permalink");
$description = $row->title  .   $row->post;
$twittermsg = substr($description, 0, 110);
$twittermsg .= "...more " .  $url; 
if ($i < $limit) // we are under our limit
    { ?>

<div class="titlebox">
<div class="title"><? echo ucwords($row->title); ?></div>
<span><? echo $row->date, nbs(10), $row->author; ?></span> 
</div>
<div class="clear"></div>
<? $str = str_word_count($row->post, 0);
    if ($str >= 500) {
    $row->post = html_entity_decode($row->post);
    $row->post = $this->typography->auto_typography($row->post); // display?>
 <div class="split"> <? echo $row->post = word_limiter($row->post, 480); ?> 


 <div class="tags"><? echo $row->tag; ?></div>*** These 3 lines seem to be where I am confused and getting the wrong display


 <p><h3>More <?php echo anchor("main/blog_view/$row->id", ucwords($row->title)); ?>    </h3></p>  
 <p>Trackback URL: <? echo base_url() . "trackbacks/track/$row->id"; ?></p>  
 <!-- tweet me -->    
<?echo anchor("http://twitter.com/home?status=$twittermsg", 'Tweet'); ?> 

这是我第一次尝试加入,如果这是正确的方法,我很少有使用implode显示的经验。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

尝试

<div class="tags"><? echo implode(', ', $row->tag); ?></div>

并删除此行之前的2行。