2013-05-11 159 views
0

我试图获得注册用户的名字和姓氏。 这是在模型从数据库获取单个值 - Codeigniter

public function getf() 
{ 

    $email = $this->input->post('email'); 
    $this->db->where('email', $this->input->post('email')); 
    $query = $this->db->get('users'); 
     if($query->num_rows == 1) 
     { 
      $row = $query->row(); 
      echo $row->fname; 
     } 

} 


public function getl() 
{ 
    $this->db->where('email', $this->input->post('email')); 
    $query = $this->db->get('users'); 
    if($query->num_rows == 1) 
    { 
     $row = $query->row(); 
     echo $row->lname; 
    } 

} 

在我的位指示我的getFirstName,getlastname功能:

public function members() 
{ 
    if($this->session->userdata('is_logged_in')) 
    { 

     $data['fname'] = $this->getf(); 
     $data['lname'] = $this->getl(); 
     $this->load->view('members', $data); 
    } 
    else 
    { 
     redirect('main/restricted'); 
    } 
} 

林回荡在我看来,FNAME和LNAME变量,打印“阵”,而不是实际的名字和姓氏

echo $fname; 
echo $lname; 

回答

3

您对型号的呼叫是完全错误的,您不是遵循标准程序 。像这样尝试。 单独的逻辑

控制器

public function members() 
{ 
    if($this->session->userdata('is_logged_in')) 
    { 

     $email = $this->input->post('email'); 
     $result = $this->mymodel->getnames($email); 
     if($result){ 
      $data['fname'] = $result->first_name; 
      $data['lname'] = $result->last_name; 
      $this->load->view('members', $data); 
     } 
    } 
    else 
    { 
     redirect('main/restricted'); 
    } 
} 

而对于模型创建单功能不两个函数 为两个值可与单个功能 检索此外返回对象,而不是回声

public function getnames($email) 
{ 
    $this->db->where('email',$email); 
    $query = $this->db->get('users'); 
    if($query->num_rows == 1) 
    { 
     return $query->row(); 
    } 
    return false; 
} 
0

从我可以看你有没有真正宣布“FNAME”和“L-NAME”的变量,除非我已经错过了它,但如果它保持返回“氩射线”那是因为你需要用连载

$variable = json_encode($arrayName); 

这个数组将会把数组转换成字符串,希望这有助于。

+0

但我通过$ data数组到视图中。 fname和lname会被转换成视图中的变量吧? – wdphd 2013-05-11 17:57:22

+0

啊我看到了,但你不能直接把一个数组变成一个独立的字符串变量......你必须将数组串行化或串行化,以便它可以分解,否则就是因为你没有指定哪个你想使用的数组的一部分...所以如果我有一个数组像... fname <=丹lname <=摩根我将不得不做$变数[0]打印丹和$变量[1]打印摩根,但你有两个单独的数组试试这个... echo $ fname [0]; echo $ lname [0]; – 2013-05-11 18:07:14

+0

$ fname [0]是空的我猜。它不打印任何东西。 var_dump显示它被设置为NULL。无法找到为什么getf和getl函数没有返回值 – wdphd 2013-05-11 18:25:41

0

UserModel

class UserModel extends CI_Model 
{ 
    public function getItemByEmail($email) 
    { 
     // check email 
     $this->load->helper('email'); 

     if(! $email OR ! valid_email($email)) 
      return array(); 

     $this->db->where('email', $email); 
     $this->db->limit(1); 
     $item = $this->db->get('users')->row(); 

     return $item; 
    } 
} 

控制器:

public function members() 
{ 
    if(! $this->session->userdata('is_logged_in')) 
     redirect('main/restricted'); 

    $this->load->model('UserModel'); 

    $this->load->view('members', array(
     'userRow' => $this->UserModel->getItemByEmail($this->input->post('email', TRUE)) 
    )); 
} 

查看:

<?= (isset($userRow->fname) ? $userRow->fname : ''); ?>