Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codeigniter 我想获取学生数据,但它只获取一行数据_Codeigniter - Fatal编程技术网

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');  
    }


}