从数据库中获取单个值 - Codeigniter

时间:2013-05-11 17:36:31

标签: php mysql codeigniter

我正在尝试获取注册用户的名字和姓氏。 这是模型中的getfirstname,getlastname函数

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;
    }

}

在我的控制器中:

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变量,它们打印'Array'而不是实际的firstname和lastname

echo $fname;
echo $lname;

3 个答案:

答案 0 :(得分:4)

你对模特的打电话是完全错误的,你不是 遵循标准程序。试试吧。 分开逻辑

控制器

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;
}

答案 1 :(得分:0)

从我所看到的,你实际上还没有宣布过' fname'和' lname'变量,除非我错过了它,但如果它不断返回'数组'那是因为你需要用

序列化数组
$variable = json_encode($arrayName);

这会将数组转换为字符串,希望这会有所帮助。

答案 2 :(得分: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 : ''); ?>