0

私が取り組んでいるこのプロジェクトがあり、ユーザーは登録してIDを割り当てることができます。そのユーザーはブログやコメントを投稿することができ、これらのブログやコメントにはユーザーのユーザーIDと同じ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結合と呼ばれます。詳細については、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 に答える