2010-07-13 94 views
1

我有一个问题,它涉及到博客文章并显示来自另一个表的标记词。 我似乎能够将表格中的信息拉出来,但是当我尝试显示帖子和标签时,每个帖子都会获得一个标签。换句话说,如果我有一个帖子有7个标签,我会得到7个迭代,每个帖子都有一个标签,而不是1个帖子,有7个标签。Codeigniter表加入然后显示标记问题

我控制器(确实有一个关于问题$这个 - > DB->获得(职位,标签)是正确的

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

视图 $限值为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'); ?> 

这是我与参加第一次尝试,我有很少的经验,掌握破灭显示,如果这是正确的道路要走。

预先感谢您。

回答

1

尝试

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

这之前删除了2行。

+0

在这样做,我得到以下错误。 “消息:implode()[function.implode]:传递的参数无效”。 $ row->标签可能没有被准备好作为数组吗?还是应该通过与通过foreach语句的$ row->标签的其余部分不同的方式传递?(未显示)让我将其余视图添加到上面的帖子中。 – Brad 2010-07-13 12:23:48

+0

只是打印它(与'print_r')并检查是否有内容。如果不是,你知道你需要以不同的方式填充变量。 – DrColossos 2010-07-13 12:45:41

+0

Print_r给了我相同的问题 毫无疑问,我不能看到这个变量如何通过Foreach作为数组,所以你是对的,我会找到一种不同的方式来填充数组。谢谢 – Brad 2010-07-13 16:20:00