Codeigniter 我想获取学生数据,但它只获取一行数据
我正在开发一个学生信息系统,我陷入了这个问题。每当我获取学生数据时,它只返回一行数据。Codeigniter 我想获取学生数据,但它只获取一行数据,codeigniter,Codeigniter,我正在开发一个学生信息系统,我陷入了这个问题。每当我获取学生数据时,它只返回一行数据。 你能帮助我吗?如何解决这个问题?多谢各位 控制器 功能帐户\u验证(){ $this->form_validation->set_规则('Username','Username','required'); $this->form_validation->set_规则('Password'、'Password'、'required'); $this->form\u validation->set\u error
你能帮助我吗?如何解决这个问题?多谢各位 控制器
功能帐户\u验证(){
$this->form_validation->set_规则('Username','Username','required');
$this->form_validation->set_规则('Password'、'Password'、'required');
$this->form\u validation->set\u error\u分隔符(“”,');
如果($this->form\u validation->run()==FALSE){
$this->load->view('login');
}否则{
$username=$this->input->post('username');
$password=md5($this->input->post('password'));
$check=$this->Model_login->login($username,$password);
如果($支票){
foreach($行的支票);
$data=数组(
'User\u id'=>$row->User\u id,
“确认密码”=>$row->确认密码,
'剖切id'=>$row->剖切id,
'default\u section\u id'=>$row->default\u section\u id,
“default\u section”=>$row->default\u section,
'yeargrade\u id'=>$row->yeargrade\u id,
'Username'=>$row->Username,
“状态”=>$row->status,
“级别”=>$row->Level,
“first\u name”=>$row->first\u name,
“中间名称”=>$row->中间名称,
“姓氏”=>$row->last\u name,
“程序”=>$row->programs,
'userfile'=>$row->userfile,
);
$this->session->set_userdata($data);
如果($this->session->userdata('Level')=“1”){
$this->session->set_flashdata('Success',“您已成功登录”);
重定向(“管理/仪表板”);
}elseif($this->session->userdata('Level')==“2”){
$this->session->set_flashdata(‘成功’、‘成功登录’);
重定向(“注册器/仪表板”);
}
}否则{
$this->session->set_flashdata('错误','无效的用户名/密码组合');
重定向(“登录”);
}
}
}
型号
函数登录($username,$password){
$this->db->select('a.User\u id,a.Username,a.Password,a.userfile,a.status,a.Level,a.first\u name,a.middle\u name,a.last\u name,b.default\u section\u id,c.default\u section,d.yeargrade\u id,e.subject,a.Confirm\u Password');
$this->db->from('user_tbl a');
$this->db->join('sectioning_tbl b','a.User_id=b.User_id','left');
$this->db->join('default\u section\u tbl c','b.default\u section\u id=c.default\u section\u id','left');
$this->db->join('studentyeartbl d','d.yeargrade\u id=c.default\u section\u id','left');
$this->db->join('default_subject_tbl e','e.yeargrade_id=c.yeargrade_id','left');
$this->db->where('Username',$Username);
$this->db->where('Password',$Password);
$result=$this->db->get();
$this->db->limit(1);
返回$result->result();
}
我认为您应该从模型中删除这一行:
$this->db->limit(1)代码>
codeigniter上的函数将限制1
放在查询中,因此只能得到一行。
另一方面,如果这是一个登录,只获取一行是有意义的。您的控制器似乎具有处理多行的逻辑,但会在用户名和密码的第一次匹配时重定向,因此,如果您有多个用户具有相同的登录名,则可能会将访问权限授予错误的用户
也许这会奏效。
-模型
- 控制器
功能帐户\u验证(){
$this->form_validation->set_规则('Username','Username','required');
$this->form_validation->set_规则('Password'、'Password'、'required');
$this->form\u validation->set\u error\u分隔符(“”,');
如果($this->form\u validation->run()==FALSE){
$this->load->view('login');
}否则{
$username=$this->input->post('username');
$password=md5($this->input->post('password'));
$row=$this->Model_login->login($username,$password);
如果($行){
$data=数组(
'User\u id'=>$row->User\u id,
“确认密码”=>$row->确认密码,
'剖切id'=>$row->剖切id,
'default\u section\u id'=>$row->default\u section\u id,
“default\u section”=>$row->default\u section,
'yeargrade\u id'=>$row->yeargrade\u id,
'Username'=>$row->Username,
“状态”=>$row->status,
“级别”=>$row->Level,
“first\u name”=>$row->first\u name,
“中间名称”=>$row->中间名称,
“姓氏”=>$row->last\u name,
“程序”=>$row->programs,
'userfile'=>$row->userfile,
);
$this->session->set_userdata($data);
如果($this->session->userdata('Level')=“1”){
$this->session->set_flashdata('Success',“您已成功登录”);
重定向(“管理/仪表板”);
}elseif($this->session->userdata('Level')==“2”){
$this->session->set_flashdata(‘成功’、‘成功登录’);
重定向(“注册器/仪表板”);
}
}否则{
$this->session->set_flashdata('错误','无效的用户名/密码组合');
重定向(“登录”);
}
}
那么…你想在登录
和/或帐户验证
功能中获取所有学生的数据吗?这没有意义…而不是将同一句话复制到
function login($username, $password) {
$this -> db -> select('a.User_id, a.Username, a.Password, a.userfile, a.status, a.Level, a.first_name, a.middle_name, a.last_name, b.default_section_id, c.default_section, d.yeargrade_id, e.subject, a.Confirm_password');
$this -> db -> from('user_tbl a');
$this -> db -> join ('sectioning_tbl b', 'a.User_id = b.User_id', 'left');
$this -> db -> join ('default_section_tbl c', 'b.default_section_id = c.default_section_id', 'left');
$this -> db -> join ('studentyeartbl d', 'd.yeargrade_id = c.default_section_id', 'left');
$this -> db -> join ('default_subject_tbl e', 'e.yeargrade_id = c.yeargrade_id', 'left');
$this -> db -> where ('Username', $username);
$this -> db -> where ('Password', $password);
$result = $this -> db -> get ();
$result = $result -> result();
return ( isset($result[0]) ? $result[0] : FALSE);
}
function Account_Validation() {
$this->form_validation->set_rules('Username', 'Username', 'required');
$this->form_validation->set_rules('Password', 'Password', 'required');
$this->form_validation->set_error_delimiters('<span class="text-danger">', '</p>');
if($this -> form_validation -> run() == FALSE) {
$this -> load -> view ('login');
} else {
$username = $this -> input -> post('Username');
$password = md5($this -> input -> post('Password'));
$row = $this -> Model_login -> login($username, $password);
if($row) {
$data = array (
'User_id' => $row -> User_id,
'Confirm_password' => $row -> Confirm_password,
'sectioning_id' => $row -> sectioning_id,
'default_section_id' => $row -> default_section_id,
'default_section' => $row -> default_section,
'yeargrade_id' => $row -> yeargrade_id,
'Username' => $row -> Username,
'status' => $row -> status,
'Level' => $row -> Level,
'first_name' => $row -> first_name,
'middle_name' => $row -> middle_name,
'last_name' => $row -> last_name,
'programs' => $row -> programs,
'userfile' => $row -> userfile,
);
$this -> session -> set_userdata($data);
if($this -> session -> userdata('Level') == "1") {
$this -> session -> set_flashdata('Success', "You've Successfuly Logged In");
redirect('Admin/Dashboard');
} elseif ($this -> session -> userdata('Level') == "2") {
$this -> session -> set_flashdata('Success', 'Successfuly Logged In');
redirect('Registrar/Dashboard');
}
} else {
$this -> session -> set_flashdata('error', 'Invalid Username/Password Combination');
redirect('login');
}
}