所以我有两个表,第一个就是这个, user_account 表。
此表用于登录。
ID | login_id | role | password
---+----------+---------+---------
1 | 1110QA | admin | password
2 | 1110QB | teacher | password
3 | 1110QC | teacher | password
这是我的第二张表,即老师表 我可以在这张桌子上获得老师的信息,就像她的名字一样。
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 Record的信息,但我的代码仍无效。它不会打印任何东西,但它没有任何错误。所以这是我的代码。 我不确定我的查询是否正确以及我的控制器。
控制器:
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'];
}
?>
请帮助我,请耐心地告诉我们,我仍然是使用这种框架的新手..
答案 0 :(得分:0)
您需要使用join; CodeIgniter reference(搜索联接)
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
}
}