2017-02-13 53 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

請接受答案,並在第一個問題中解決了您的問題。而不是添加一個完全不同的問題的答案,我建議你爲菜單/會話問題創建一個新的問題。它與原始問題無關。 –