Php 如何使用CodeIgniter在单个post中连接表和显示

Php 如何使用CodeIgniter在单个post中连接表和显示,php,codeigniter,Php,Codeigniter,我有三张桌子 职位 身份证 猫咪 用户id 头衔 内容 使用者 身份证 用户名 通过 类别 身份证 名字 我有一个代码如下: 我的帖子管理员 $data['all_categories'] = $this->category_model->get_all_categories(); $data['posts'] = $this->post_model->get_posts(); $data['users'] = $this->user_model->

我有三张桌子

  • 职位
    • 身份证
    • 猫咪
    • 用户id
    • 头衔
    • 内容
  • 使用者
    • 身份证
    • 用户名
    • 通过
  • 类别
    • 身份证
    • 名字
  • 我有一个代码如下:

    我的帖子管理员

    $data['all_categories'] = $this->category_model->get_all_categories();
    $data['posts'] = $this->post_model->get_posts();
    $data['users'] = $this->user_model->get_user();
    
    $this->load->view('pages/template', $data);
    
    $data['posts'] = $this->post_model->load_posts();
    
    我的post\u模型

    $this->db->order_by('posts.id', 'DESC');
    $this->db->join('categories', 'categories.id = posts.category_id');
    $this->db->join('users', 'users.id = posts.user_id');
    $query = $this->db->get('post');
    return $query->result_array();
    
    public function load_posts(){
        $this->db->select('tbl_p.*, tbl_u.username, tbl_u.pass, tbl_c.name as category_name');        
        $this->db->from('posts as tbl_p');
        $this->db->join('users as tbl_u', 'tbl_u.id = tbl_p.user_id', 'left');
        $this->db->join('categories as tbl_c', 'tbl_c.id = tbl_p.cat_id', 'left');
        $this->db->order_by('tbl_p.id', 'DESC');        
        $query = $this->db->get();
        return ($query->num_rows() > 0) ? $query->result_array() : false;        
    }
    
    我的索引视图

    <?php foreach ($posts as $post): ?>
        <br>
        <div class="media">
            <div class="media-body" style="margin-left: 5px;">
                <h5><?php echo $post['title']; ?></h5>
                <small class="post-date"><span class="fa fa-user"></span> <strong><?php echo $post['username']; ?></strong> | <span class="fa fa-tags"></span> <strong><?php echo $post['name']; ?></strong></small><br>
                <?php echo character_limiter($post['content'], 250); ?>
                <hr>
            </div>
        </div>
    <?php endforeach; ?>
    
    <h5><?php echo $post['title']; ?></h5>
    <small class="post-date"><span class="fa fa-user"></span> <strong><?php echo $post['username']; ?></strong> | <span class="fa fa-tags"></span> <strong><?php echo $post['category_id']; ?></strong></small><br>
    <?php echo $post['content']; ?>
    
    
    
    |

    我成功地在索引视图中显示了它,但用户名和类别名称在单个帖子中不起作用

    我的帖子视图

    <?php foreach ($posts as $post): ?>
        <br>
        <div class="media">
            <div class="media-body" style="margin-left: 5px;">
                <h5><?php echo $post['title']; ?></h5>
                <small class="post-date"><span class="fa fa-user"></span> <strong><?php echo $post['username']; ?></strong> | <span class="fa fa-tags"></span> <strong><?php echo $post['name']; ?></strong></small><br>
                <?php echo character_limiter($post['content'], 250); ?>
                <hr>
            </div>
        </div>
    <?php endforeach; ?>
    
    <h5><?php echo $post['title']; ?></h5>
    <small class="post-date"><span class="fa fa-user"></span> <strong><?php echo $post['username']; ?></strong> | <span class="fa fa-tags"></span> <strong><?php echo $post['category_id']; ?></strong></small><br>
    <?php echo $post['content']; ?>
    
    
    |

    请帮帮我,伙计们。谢谢

    在文件中添加以下代码

    在型号中

    $this->db->order_by('posts.id', 'DESC');
    $this->db->join('categories', 'categories.id = posts.category_id');
    $this->db->join('users', 'users.id = posts.user_id');
    $query = $this->db->get('post');
    return $query->result_array();
    
    public function load_posts(){
        $this->db->select('tbl_p.*, tbl_u.username, tbl_u.pass, tbl_c.name as category_name');        
        $this->db->from('posts as tbl_p');
        $this->db->join('users as tbl_u', 'tbl_u.id = tbl_p.user_id', 'left');
        $this->db->join('categories as tbl_c', 'tbl_c.id = tbl_p.cat_id', 'left');
        $this->db->order_by('tbl_p.id', 'DESC');        
        $query = $this->db->get();
        return ($query->num_rows() > 0) ? $query->result_array() : false;        
    }
    
    在控制器中

    $data['all_categories'] = $this->category_model->get_all_categories();
    $data['posts'] = $this->post_model->get_posts();
    $data['users'] = $this->user_model->get_user();
    
    $this->load->view('pages/template', $data);
    
    $data['posts'] = $this->post_model->load_posts();
    

    可能是因为行名称相同。对于您选择的每一行,使用SELECT作为“唯一名称”。

    post.category\U id应为post.category\U id(在post\U模型中)我已将其替换,但结果保持不变。