【问题标题】:How to get values from another table in codeigniter using the Active Record?如何使用 Active Record 从 codeigniter 中的另一个表中获取值?
【发布时间】:2014-12-13 23:46:56
【问题描述】:

所以我有两个表,第一个是 user_account 表。
此表用于登录。

ID | login_id | role    | password
---+----------+---------+---------
1  | 1110QA   | admin   | password  
2  | 1110QB   | teacher | password
3  | 1110QC   | teacher | password

这是我的第二张桌子,即 teacher 桌子。
而这张表就是我要获取老师信息的地方,比如她的名字。

ID | teacher_id | fname | mname   | lname   | email
---+------------+-------+---------+---------+---------------
1  | 1110QA     | John  | Vincent | Doe     | jvd1@gmail.com
2  | 1110QB     | Mary  | Pop     | Poppins | mpp2@gmail.com
3  | 1110QC     | Julie | Ken     | Clark   | jkc3@gmail.com

我想说的是,我将 userid(login_id) 存储在 user_account 表中,并将用户详细信息存储在teacher 表中。 所以我的问题是如何使用我登录的帐户访问教师表中的值?我阅读了有关 Active Records 的信息,但我的代码仍然无法正常工作。它不会打印任何东西,但它没有任何错误。所以这是我的代码。 我不确定我的查询是否正确以及我的控制器。

控制器:

class Site extends CI_Controller {
  public function teacher(){ 
    $this->load->model('model_teacher');
    $id = $this->input->post('idnum'); 
    $data['result'] = $this->model_teacher->scoreboard($id);
    $this->load->view('teacher/teacher', $data);
  }
}

型号:

 class Model_teacher extends CI_Model {
    public function scoreboard($id) {
        $query = $this->db->get_where('teacher', array('login_id' => '$id'));
        return $query->result_array();
    }
} 

查看:

<?php
    foreach ($result as $an) {
            echo $an['login_id'];
            echo $an['lname'];
            echo $an['mname'];
            echo $an['fname'];
        }
 ?>    

请帮帮我,请大家多多包涵,我还是个新手使用这种框架..

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    你需要使用join; CodeIgniterreference(搜索加入)

    class Model_teacher extends CI_Model {
        public function scoreboard( $id ) {
    
            $q = $this->db->select('user_account.login_id, teacher.*') //select what we need
                          ->join('teacher', 'user_account.login_id = teacher.teacher_id') //do join
                          ->where(['user_account.id' => $id]) //where clause
                          ->get('user_account'); 
    
            return ($q->num_rows() > 0) ? $q->result_array() : array(); //is there something to return? otherwise return an empty array
        }
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-11
      • 2020-03-22
      • 1970-01-01
      • 2017-09-21
      • 1970-01-01
      • 2013-06-14
      • 2010-11-16
      • 1970-01-01
      相关资源
      最近更新 更多