2011-10-30 13 views
0

私はカスタムのUserdata変数(実際には配列)を設定しようとしています。CI_Sessionオブジェクトのset_userdataをゼロにする理由

フォーム入力に基づいてMYSQL UserTableを照会し、 というレコードをresult_arrayとして返しました。次のように

$this->session->set_userdata('Login', $ResultofUserMatch); 

ユーザデータセッション変数のダンプは次のとおりです。

[userdata] => Array 
    (
     [session_id] => fda0d4f9a5b90c813b0850fa6e651b20 
     [ip_address] => aa.bb.cc.dd 
     [user_agent] => Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100 
     [last_activity] => 1319892314 
     [Login] => Array 
      (
       [0] => Array 
        (
         [ID] => 802 
         [Care Center Name] => george 
         [w3user] => [email protected] 
         [w3pass] => george 
         [w3code] => none 
         [role] => admin 
        ) 

      ) 

    ) 

注ログインアレイが含まれていることが、データがINDEXであることを0 - ので、彼らはログイン[にいます0] [役割]を選択します。

何か間違っていますか?データを「1つ上のレベル」にするにはどうすればよいですか?

答えて

1

結果セットが得られたら、$query->result()の代わりに$query->row()を呼び出し、結果セットの最初の行をフェッチする必要があります。result()は、セット内のすべての結果の配列を返します。

$query = $this->db->select('*')->from('userTable')->get(); 
$ResultofUserMatch = ($query->num_rows() !== 0 ? $query->row() : false); 

if($ResultofUserMatch) 
    $this->session->set_userdata('Login', $ResultofUserMatch); 
関連する問題