Отображение данных из объединения в Codeigniter - PullRequest
2 голосов
/ 15 января 2011

Я использую простое соединение для извлечения данных из двух баз данных. Это объединение в модели:

function com_control(){
    $this->db->select('*');
    $this->db->from('comments');
    $this->db->join('posts', 'comments.entry_id = posts.id');
    $query = $this->db->get();
    return $query->result;
}

Мой желаемый метод отображения будет в таблице, поэтому я начинаю использовать так:

foreach($comm_control as $row){

   $this->table->add_row(
   $row->entry_id,
   $row->comments.id,
   $row->comment,
   $row->title             
   );      
}//end of foreach

Моя проблема заключается в отображении данных из comments.id. В каком формате можно добавить comment.id в строки таблицы? Мне нужен идентификатор из обеих таблиц для отображения, редактирования и удаления в дальнейшем в таблице. Единственное отображение, которое я получаю в это время для "comment.id", это слово id.

Любая помощь будет оценена.

1 Ответ

6 голосов
/ 15 января 2011

Хорошо, я думаю, что вам нужно установить псевдоним для поля id в таблице комментариев:

function com_control() {
    $this->db->select('entry_id, comments.id AS comment_id, comment, title');
    $this->db->from('comments');
    $this->db->join('posts', 'comments.entry_id = posts.id');
    $query = $this->db->get();

    return $query->result;
}

Затем вы можете ссылаться на поле comments.id просто как $ row-> comment_id:

$this->table->set_heading('Entry ID', 'Comment ID', 'Comment', 'Title');

foreach ($comm_control as $row ) {
    $this->table->add_row(
        $row->entry_id,
        $row->comment_id,
        $row->comment,
        $row->title             
    );      
}

echo $this->table->generate();

На самом деле, если столбец id уникален для таблицы комментариев, вы можете просто использовать $ row-> id;проблема возникает, когда вы объединяете таблицы, столбцы которых имеют одинаковые имена;это становится неоднозначным, и компьютер не будет знать, на что вы ссылаетесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...