codeigniter单个结果没有foreach循环

时间:2013-02-09 13:31:19

标签: php mysql codeigniter foreach

我使用codeigniter从db获取单个结果,如下所示:

$user = $this->db->query("SELECT * FROM users LIMIT 1");

然后我获取返回的对象并以此方式循环:

foreach ($user->result() as $row) { ... }

可以想象,使用循环没有意义,因为只有一个结果。有没有办法在不循环的情况下获取用户参数?这一行中的一些东西:

echo $user['name'];

提前致谢。

4 个答案:

答案 0 :(得分:8)

$user = $this->db->query("SELECT * FROM users LIMIT 1")->row();

将其作为对象(echo $user->name;

$user = $this->db->query("SELECT * FROM users LIMIT 1")->row_array();

for have是一个数组(echo $user['name'];);

$user = $this->db->limit(1)->get('users')->row(); //or ->row_array();

使用AR;

$row = $user->first_row();

从结果集中获取第一行($ this-> db-> result()),作为对象(默认);

$row = $user->first_row('array');

从结果集中获取第一行,作为数组;

$row = $user->row_array(1);

返回一个特定的行(首先,在这种情况下。只需传递该行的<N>)。适用于$user->row(1);

答案 1 :(得分:1)

这将是:

$user = $this->db->query("SELECT * FROM users LIMIT 1")->row_array();

此处有更多详情:http://ellislab.com/codeigniter/user-guide/database/results.html

答案 2 :(得分:0)

做这样的事情

    //in the model
    $query = $this->db->query("your query");

$row = $query->row();

    if (isset($row))
return $row;
}else{
return false;
}

然后回复你的结果

echo $row->username;

如果您想将其传递给视图

//in the controller

$this->load->model('somemodel');
        $hm=$this->somemodel->somemethod();
        $data['query']=$hm;
    $this->load->view('path/to/view',$data);

然后以同样的方式回应

echo $row->username;

答案 3 :(得分:-1)

假设您的模型函数就像这样.......

 public function get_users()
 {

  $query = "Select * from users limit 1";

  $res=$this->db->query($query);

    if($res->num_rows()>0){
        return $res->result("array");
    }
    return array();
 }

假设您在控制器函数中调用此模型,如此

    $users =  $this->model_file->get_users();

然后你可以像这样回复echo $users[0]['user_name'];