代码之家  ›  专栏  ›  技术社区  ›  Brad

编码点火器表连接然后显示标签问题

  •  1
  • Brad  · 技术社区  · 14 年前

    我有一个与博客文章和显示另一个表中的标记词有关的问题。 我似乎能够很好地从表格中提取信息,但是当我尝试显示帖子和标签时,我会得到每个帖子一个标签。换言之,如果一篇文章有7个标签,我会得到该文章的7个迭代,每个迭代有一个标签,而不是一篇文章有7个标签。

    我的控制器(有关于$this->db->get(posts,tags)的问题)是否正确

    $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'); ?> 
    

    这是我对join的第一次尝试,如果这是正确的方式,我很少有经验使用内爆来获得显示。

    提前谢谢。

    1 回复  |  直到 14 年前
        1
  •  1
  •   DrColossos    14 年前

    尝试

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

    把前面的两行去掉。