0

我有一个我正在从事的项目,用户可以在其中注册并分配一个 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 更改为名称(由名字 + 姓氏组合而成)的方法。

4

1 回答 1

0

您在这里需要的是所谓的 SQL Join。在CI 手册中找到更多关于它的信息:

这是您需要的示例:

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

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

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

于 2013-02-10T15:38:41.300 回答