2017-02-13 60 views
0

im编程中的一个起始者。我想简单地检查SQL中的int值并将其保存到变量中。这只是一个结果,这不是问题。但是当这是两个结果时,我遇到了问题。我很抱歉我的混乱英语。我希望你能理解我Codeigniter多重查询结果会话

$this->db->where('login', $login); 
    $this->db->where('password', $password); 
    $result = $this->db->get('users'); 
    $this->db->where('admin', 1);  // I want to get users who have admin as "1" 
    $admin = $this->db->get('users'); // Admin result ??? 

    if($result->num_rows() > 0) 
    { 

     $user = array(
      'username' => md5($login), 
      'logged_in' => true, 
      // Now i don't know how to check admin var is equal to 1. If 1 i want to add something like this: 
      'admin' => true 
     ); 

     $this->session->set_userdata($user); 
     return true; 
    } 

回答

0

你不必做2个查询来检查用户是否是管理员。只是检查,从你选择的一行结果:

$this->db->where('login', $login); 
    $this->db->where('password', $password); 
    $query = $this->db->get('users'); 

    $row = $query->row(); 

    if (isset($row)) { 
     $user = array(
     'username' => md5($login), 
     'logged_in' => true, 
     'admin' => $row->admin //IF YOU HAVE 1 = ADMIN IN YOUR TABLE? 
    ); 

     $this->session->set_userdata($user); 
     return true; 
    } 

的选择,如果你需要1/0转化为真/假:

if (isset($row)) { 
    $admin = ($row->admin == 1) ? true : false; // IF DB HAS INTEGER 1 
    $user = array(
    'username' => md5($login), 
    'logged_in' => true, 
    'admin' => $admin 
); 

    $this->session->set_userdata($user); 
    return true; 
} 
+0

感谢。您的帮助。似乎没有问题 – Adi212

+0

请接受答案,并在第一个问题中解决了您的问题。而不是添加一个完全不同的问题的答案,我建议你为菜单/会话问题创建一个新的问题。它与原始问题无关。 –