Codeigniter: как получить разные данные столбца из внешней таблицы, используя идентификатор внешнего ключа?

Мне удалось успешно получить данные в следующей таблице. Однако в столбце «Учитель класса» я хочу имя учителя вместо идентификатора учителя (внешний ключ) Codeigniter: как получить разные данные столбца из внешней таблицы, используя идентификатор внешнего ключа?

Это таблица базы данных

Codeigniter: как получить разные данные столбца из внешней таблицы, используя идентификатор внешнего ключа?

Вот как я получаю данные в представлении класса

if ( !empty($class_data) ) {
                                    foreach ($class_data AS $row) {
                                        ?>
                                        <tr>
                                            <td><?php echo $row->class_id; ?></td>
                                            <td><?php echo $row->grade; ?> </td>
                                            <td><?php echo $row->name; ?></td>
                                            <td><?php echo $row->capacity; ?></td>

                                            <td> <?php echo $row->teacher_id; ?></td>

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

function index()
{

    $teacher_data= $this->Tableview_model->fetch_teacher_data();
    $class_data = $this->Tableview_model->fetch_class_data();

    $data["teacher_data"]  =  $teacher_data;
    $data["class_data"]  =  $class_data;


    $this->load->view('classes',$data);
}

function add_class()
{
    $class_data = array( 
        'class_id' => '',
        'grade' => $this->input->post('grade'),
        'name' => $this->input->post('class_name'),
        'capacity' => $this->input->post('capacity'),
        'teacher_id' => $this->input->post('class_teacher'),

    );


    $insert = $this->Model_Action->insertTable('class',$class_data);

    echo json_encode(array("status" => TRUE));


}

таблица базы данных учителей

CREATE TABLE teacher ( teacher_id int(11) NOT NULL AUTO_INCREMENT, t_f_name varchar(250) NOT NULL, t_last_name varchar(250) NOT NULL, DOB date NOT NULL, t_email varchar(250) NOT NULL, t_address varchar(500) NOT NULL, t_tel varchar(150) NOT NULL, t_username varchar(250) NOT NULL, t_password varchar(500) NOT NULL, qualifications varchar(5000) NOT NULL, t_date_of_join date NOT NULL, t_date_of_leaving date NOT NULL, t_current_status int(1) NOT NULL, PRIMARY KEY (teacher_id) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1

Модель функции fetch_class_data

  function fetch_class_data()
  {
    $this->db->select("*");
            $this->db->from('class');

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

        if ($query->num_rows() > 0) 
        {
            return $query->result();


        }else{
            return false;
        }


  }

Можете ли вы поделиться teachers структурой таблицы и кодом функции модели?

Satish Saini 10.03.2019 16:22

Я обновил вопрос с таблицей учителей и кодом функции модели.

deeva 10.03.2019 16:27

Ответил ниже. Вам нужно использовать соединение, чтобы получить имя учителя.

Satish Saini 10.03.2019 16:30
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
124
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно использовать JOIN между class и teacher таблицей. Измените код модели на:

$this->db->select('c.*, t.t_f_name, t.t_last_name')
         ->from('class c')
         ->join('teacher t', 'c.teacher_id = t.teacher_id');
$query = $this->db->get();

Используйте t_f_name и t_last_name в качестве полного имени, объединив их

Итак, замените

<td><?php echo $row->teacher_id; ?></td>

с участием

<td><?php echo $row->t_f_name . " " . $row->t_last_name; ?></td>

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