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

Если у меня есть таблица, как это:

ID | Title | Topic      | Summary    
1   |   A   | Technology | ...    
2  |   B   | Health     | ...    
3  |   C   | Sport      | ...

Это моя CI_Model:

function show($limit, $offset)
    {
        $this->db->select('document.id, document.title, document.summary, document.id_topic AS topic');
        $this->db->from('document');
        $this->db->join('topic', 'topic.id_topic = document.id_topic');
        $this->db->limit($limit, $offset);
        $this->db->order_by('id', 'asc');
        return $this->db->get()->result();
    }

Это мой контроллер:

            $docdata = $this->Trainingmodel->show($this->limit, $offset);
        ...
        $this->table->set_heading('ID', 'Title', 'Topic', 'Summary');
        foreach ($docdata as $doc)
        {
            $this->table->add_row($doc->id, $doc->title, $doc->topic, $doc->summary);                                                                                               
        }

Очевидно, тема показывает, что это идентификатор, а не имя. Например:

ID | Title | Topic      | Summary    
1   |   A   | 1 | ...    
2  |   B   | 2  | ...    
3  |   C   | 3  | ...

Что я должен делать? Я хочу показать название темы, а не идентификатор темы.

3 ответа

Решение

Глядя на структуру таблицы, которую вы разместили в виде комментариев в других ответах, я думаю, что вам нужно topic.topic в вашем select() а также topic.id = document.id_topic в вашем join() -

$this->db->select('document.id, document.title, document.summary, topic.topic');
$this->db->from('document');
$this->db->join('topic', 'topic.id = document.id_topic');
$this->db->select('document.id, document.title, document.summary, topic.topic');
$this->db->from('document');
$this->db->join('topic', 'topic.id = document.id_topic');

Может быть из-за этого document.id_topic

$this->db->select('document.id, document.title, document.summary, document.id_topic AS topic');

это должно быть что-то вроде document.topic или же document.name_topic?

Другие вопросы по тегам