Codeigniter:获取带有id的用户名

时间:2013-02-10 15:21:14

标签: php database codeigniter

我正在进行这个项目,用户可以注册并分配ID。然后,该用户可以发布博客或评论,这些博客或评论会被分配与用户userID相同的authorID。

我需要一种方法让他们的名字发布在这些博客或消息下面而不是他们的ID - 它目前正在做。

我的博客控制器处理博客发布(评论类似),但添加博客功能除外:

    function blogToevoegen() {
    $this->form_validation->set_rules('blogtitel', 'blogtitel',       'min_length[3]|required|xss_clean|callback_username_check');
    $this->form_validation->set_rules('blogtekst', 'blogtekst', 'min_length[2]|required|xss_clean');
    if ($this->form_validation->run() == FALSE) {
        $this->load->view('view_page', $this->view_data);
    } else {
        $data = array(
            'id' => $this->input->post('id'),
            'blogtitel' => $this->input->post('blogtitel'),
            'blogtekst' => $this->input->post('blogtekst'),
            'auteur_id' => $this->session->userdata('gebruiker_id'),
        );
        $this->db->set('datum', 'NOW()', FALSE);
        $this->db->insert('blogs', $data);
        redirect('blog/eigenblogs');
    }
}

处理博客文章显示的功能(它还会将评论链接到博客)

 function comments() {
    $this->db->where('id', $this->uri->segment(3));
    $this->db->select('blogtitel, blogtekst, auteur_id, datum');
    $data['query2'] = $this->db->get('blogs');
    $this->db->where('boodschap_id', $this->uri->segment(3));
    $data['query'] = $this->db->get('comments');
    $data ["titel"] = "PXL - Comment";
    $data ["pagina"] = "content_comment";
    $this->load->view("view_page", $data);
}

显示这些博客的视图代码(留下评论的代码)

  <?php foreach ($query2->result() as $rij): ?>
                            <div class="post">
                                <h2><?= $rij->blogtitel ?></h2>
                                <p><?= $rij->blogtekst ?></p>
                                <p class="meta">Posted by <a href="#"><?= $rij->auteur_id ?></a> on <?= $rij->datum ?>
                                </p>
                            </div>                           
                        <?php endforeach; ?>
                        <hr> 

我需要一种方法将auteur_id更改为名称(由第一个+姓氏组合而成)。

1 个答案:

答案 0 :(得分:0)

这里需要的是SQL Join。在CI manual中找到更多相关信息:

以下是您需要的示例:

$this->db->select('*');
$this->db->from('blogs');
$this->db->join('users', 'users.id = blogs.author_id');

$query = $this->db->get();

这将获取所有博客文章,并将根据author_id在users表中查询用户。