Как получить данные из двух таблиц соединения с одинаковыми именами столбцов базы данных в codeigniter? - PullRequest
0 голосов
/ 11 февраля 2019

Есть две таблицы «ученик» и «родитель».в обеих таблицах есть столбцы «f_name» и «l_name».Я использовал левое соединение для этих двух таблиц.

Я хочу отобразить данные из этих двух таблиц.Однако, когда я использую следующий код, я получаю «имя родителя» в столбце, где должно быть указано имя ученика.Я понял, что это происходит потому, что в обеих таблицах есть столбцы «f_name» и «l_name».но как это исправить?

Контроллер

function index()
{
    $this->load->model('Tableview_model');


    $student_data= $this->Tableview_model->fetch_data();
    $data["student_data"]  =  $student_data;



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


}

модель

function fetch_data()
{

        $this->db->select('s.student_code, s.f_name, s.l_name, s.tel, p.f_name, p.l_name');
        $this->db->from('student as s');
        $this->db->join('parent as p','s.p_id=p.p_id','Left');
        $query=$this->db->get();

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


    }else{
        return false;
    }

}

просмотр

        <?php
        foreach ($student_data AS $row) {
            ?>
            <tr>
                <td><?php echo $row->student_code; ?></td>
                <td><?php echo $row->f_name; ?> <?php echo $row->l_name; ?></td> //I'm supposed to get student first name and last name here
                <td><?php echo $row->tel; ?></td>
                <td><?php echo $row->tel; ?></td>
                <?php
            if(isset($row->f_name) && isset($row->l_name)){ // using isset() because of LEFT JOIN
                ?>
                <td><?php echo $row->f_name; ?> <?php echo $row->l_name; ?></td> //I'm supposed to get parent first name and last name here


                <?php
                    }
                }
            ?>

вывод

enter image description here

1 Ответ

0 голосов
/ 11 февраля 2019

Вы можете сделать псевдоним имени поля, как показано ниже:

    $this->db->select('s.student_code, s.f_name, s.l_name, s.tel, p.f_name as pf_name, p.l_name as pl_name');
    $this->db->from('student as s');
    $this->db->join('parent as p','s.p_id=p.p_id','Left');
    $query=$this->db->get();

И можете использовать pf_name и pl_name в вашем представлении.Надеюсь, это поможет вам.

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