如果已知用户的唯一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);
}
然后在我看来我有
echo $username
回复array
而不是用户名。我在这里做错了什么?
答案 0 :(得分:1)
您的标准应该清楚,并且我认为usrname应该是唯一的,所以......
if ($query->num_rows() == 1) //if user exists, and unique
{
$res = $query->result_array();
return $res[0]['username'];
}
else
{
return FALSE;
}
答案 1 :(得分:0)
在我的视图中使用<pre>print_r($username)</pre>
(由Alfonso建议)很容易发现问题,在我的视图中是另一个数组的相同变量名。正确的答案是给予我的帮助者或阿方索的好建议/输入的任何人,如果他提交他的帖子作为答案。