0

データベース内の他のテーブルへのいくつかの外部IDを含む、オブジェクトのセットをビューに渡します。ユーザーのIDを参照する属性「writer_id」を持つコメントのオブジェクトを言います。

ビューからユーザーのデータ(名前など)を表示するにはどうすればよいですか?

これがコントローラーの「コメント」です:

function index() {

    $this->load->model('comment_model');
    $data['comments'] = $this->comment_model->get_comments();
    $this->load->view('comments',$data); }

これはcomment_modelの中にあります:

function get_comments()
{
    $id = $this->uri->segment(3); // ignore this , it's given
    $q = $this->db->query("SELECT * FROM comments WHERE post_id=$id");

    if ($q->num_rows() > 0 ) {
        foreach ($q->result() as $row){
            $data[] = $row;
        }

        return $data;
    }

}

ビューで使用できるのは「writer_id」だけで、彼の名前やその他のデータを表示することはできません。

アップデート

これがビューファイルです

    <?php
    if (is_array($comments)){ ?>

    <?php foreach ($comments as $comment) : ?>

    <p>
    <?php echo $comment->text;?> - written by <?php echo $comment->writer_id ?>
    </p>

    <?php endforeach ;?>
    <?php } ?>

これは印刷されます:

blablabla-4によって書かれました

あるべき場所

bla bla bla-ジョンによって書かれました(ユーザーテーブルのようにIDは4です)

4

1 に答える 1

2

簡単に結合できます。

SELECT comments.*, users.name as user_name FROM comments INNER JOIN users ON comments.writer_id = users.user_id WHERE post_id=$id

次に、結果の配列にuser_nameが含まれます。

于 2013-01-17T14:53:14.677 に答える