2011-07-23 10 views
1

ユーザーの固有IDがわかっている場合、ユーザーのユーザー名を返すためのヘルパーを作成しました。CodeigniterはIDに基づいてユーザー名を返します

if (! function_exists('get_username')) 
{ 
    function get_username($user_id) 
    { 
     $ci=& get_instance(); 
     $ci->load->database(); 

     if (empty($user_id)) 
     { 
      return FALSE; 
     } 

     $ci->db->select('username'); 
     $ci->db->where('id', $user_id); 
     $ci->db->where('activated', 1); 
     $ci->db->where('banned', 0); 
     $ci->db->limit(1); 
     $query = $ci->db->get('users'); 

     if ($query->num_rows() > 0) //if user exists 
     { 
      $row = $query->row(); 
      return $row->username; 
     } 
     else 
     { 
      return FALSE; 
     } 
    } 
} 

例えば、私がしようとした場合これが私の見解では動作します:

echo get_username($this->uri->segment(3)); //uri segment 3 is a user id. 

しかしコントローラを介して私の見解にユーザ名を送信します。

function write_message($user_id = '') //function parameter is 3rd uri segment 
{ 
    $data['username'] = get_username($user_id); 
    $this->load->view('my_view', $data); 
} 

は、次に私の見解で私の代わりに、ユーザー名の arrayをエコー

echo $usernameを持っている:私は私のコントローラで、次の試してみました。私はここで間違って何をしていますか?問題を見つけるのは簡単だった(アルフォンソにより示唆されるように)私の見解で<pre>print_r($username)</pre>を使用する際

if ($query->num_rows() == 1) //if user exists, and unique 
{ 
    $res = $query->result_array(); 
    return $res[0]['username']; 
} 
else 
{ 
    return FALSE; 
} 
+2

ビューに「

print_r($username)
」の出力はありますか? –

+0

大きな質問!どうやら私は、同じ変数名で入力用の配列をエコーし​​ていた... – CyberJunkie

答えて

1

あなたの基準が明確であるべきであり、USRNAME iは考えてユニークである必要があり、そう...、別の配列だった私のビュー内の同じ変数名です。正解は、自分の投稿を回答として提出すれば、ヘルパーやAlfonsoに良い提案/入力を与える人になります。

関連する問題