簡體   English   中英

如何在Codeigniter中從具有相同數據庫列名稱的兩個聯接表中獲取數據?

[英]How to fetch data from two join tables with same database column names in codeigniter?

有兩個表“ student”和“ parent”。 兩個表都有“ 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
                    }
                }
            ?>

輸出

在此處輸入圖片說明

您可以按以下方式對字段名進行別名:

    $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。 希望對您有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM