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

Php 从数据库获取单个值-Codeigniter,php,mysql,codeigniter,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

我正在尝试获取注册用户的名字和姓氏。 这是我的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;

从我所看到的情况来看,除非我遗漏了'fname'和'lname'变量,否则实际上您并没有声明它们,但如果它一直返回'Array',那是因为您需要使用

$variable = json_encode($arrayName);

这将把数组变成一个字符串,希望这能有所帮助。

从我所看到的情况来看,你实际上没有声明'fname'和'lname'变量,除非我遗漏了它,但如果它一直返回'array',那是因为你需要用

$variable = json_encode($arrayName);

这将把数组变成一个字符串,希望这会有所帮助。

您对模型的调用完全错误,而您没有 遵循标准程序。像这样试试。 分离逻辑

控制器

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

你对模特的要求是完全错误的,而你不是 遵循标准程序。像这样试试。 分离逻辑

控制器

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;
}
用户模型

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))
    ));
}
视图:


用户模型

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))
    ));
}
视图:



但我正在将$data数组传递到视图中。fname和lname将在视图中转换为变量,对吗?啊,我明白了,但不能直接将数组转换为独立的字符串变量。。。您必须对数组进行字符串化或序列化,以便将其拆分,否则,这是因为您没有指定要使用的数组的哪一部分。。。所以如果我有一个像。。。我想fname$fname[0]是空的。它没有打印任何东西。var_dump显示它被设置为NULL。找不到getf和getl函数不返回值的原因我认为可能是因为您创建了查询并创建了行。。。您已经创建了结果,在MySQL中,您必须创建查询,将查询传递给结果并将结果传递给行,但我将$data数组传递到视图中。fname和lname将在视图中转换为变量,对吗?啊,我明白了,但不能直接将数组转换为独立的字符串变量。。。您必须对数组进行字符串化或序列化,以便将其拆分,否则,这是因为您没有指定要使用的数组的哪一部分。。。所以如果我有一个像。。。我想fname$fname[0]是空的。它没有打印任何东西。var_dump显示它被设置为NULL。找不到getf和getl函数不返回值的原因我认为可能是因为您创建了查询并创建了行。。。您已经创建了结果,在MySQL中,您必须创建查询,将查询传递给结果,并将结果传递给行