代码点火器显示来自 2 个数据库表的信息



我是codeigniter的新手,可能会在php上做得更好。我有一个新闻项正在从数据库表新闻中检索,它有一个与合作伙伴表绑定的外键 partner_id。我想获取该值并使用它来获取关联的合作伙伴并显示其信息。这是我最新的尝试。我想我可能把它弄得太难了。所有相关文件如下。提前谢谢。

在模型中,如果在get_news函数中分配 $id_partner,我认为它不会传递给get_partner函数。

news_model.php

    public function get_news($slug_news = FALSE)
{
    $this->load->helper('array');
    if ($slug_news === FALSE)
    {
        $news_query = $this->db->get('news');
        return $news_query->result_array();
    }
    $news_query = $this->db->get_where('news', array('slug' => $slug_news));
    return $news_query->row_array(); 
    global $id_partner;
    $id_partner = element('partner_id', $news_query);
}       
public function get_partner($id_partner = FALSE){
    $partners_query = $this->db->get('partners');
    $partners_query = $this->db->get_where('partners', array('id' => $id_partner));
    return $partners_query->row_array();
}

视图函数中的 $slug_news 不适用于合作伙伴部分(显然)。 但是我可以有另一个功能吗?

控制器, 新闻.php

    public function view($slug_news)
{   
    $data['news_item'] = $this->news_model->get_news($slug_news);
    $partner_data['partner_listing'] = $this->news_model->get_partner($id_partner);
    if (empty($data['news_item']))
    {
        show_404();
    }
    $data['title'] = $data['news_item']['title'];
    $this->load->view('templates/header', $data);
    $this->load->view('news/view', $data);
    $this->load->view('news/news_partner', $partner_data);
    $this->load->view('templates/sidebar');
    $this->load->view('templates/footer');

}
视图

1,新闻/视图.php

<?php
echo '<img src="/images/'.$news_item['thumb'].'" />';
echo '<h2>'.$news_item['title'].'</h2>';
echo $news_item['text'];
echo $news_item['bus_name'];
?><br>

和视图2, 新闻/news_partner.php

<?php
echo '<h2>'.$partner_listing['bus_name'].'</h2>';
echo $partner_listing['address1'];
echo $partner_listing['address2'];
echo $partner_listing['city'];
echo $partner_listing['state'];
echo $partner_listing['phone'];
echo $partner_listing['email'];
?>

你的模型有点到处都是。 首先,返回后的两条线路永远不会get_news调用。 我只会简化模型并做一个简单的连接:

public function get_news()
{
    $this->db->select('*');
    $this->db->from('news');
    $q = $this->db->join('partners', 'news.partner_id = partners.id');
    return $q->result();
}

这是我在你的代码中放的内容:

    public function get_news($slug_news = FALSE)
{
    if ($slug_news === FALSE)
    {
        $query = $this->db->get('news');
        return $query->result_array();
    }
    $this->db->select('*');
    $this->db->from('news');
    $query_news = $this->db->join('partners', 'news.partner_id = partners.id');
    return $query_news ->result();
}       

我也只使用了"视图.php"视图。$slug_news需要在那里的某个地方吗?它怎么知道要得到什么线?谢谢你的帮助,我遇到了很多麻烦。

相关内容

  • 没有找到相关文章

最新更新