简体   繁体   中英

codeigniter single result without foreach loop

I am using codeigniter to get a single result from the db, like this:

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

I am then getting the returned object and looping trough it, this way:

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

As you can imagine, there is not point in using the loop, since there is only one result. Is there a way to get users parameters without looping? Something among this line:

echo $user['name'];

Thanks in advance.

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

for having it as an object ( echo $user->name; )

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

for having is as an array ( echo $user['name']; );

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

using AR;

$row = $user->first_row();

to get the first row out of a result set ($this->db->result()), as an object (default);

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

to get the first row out of a result set, as an array;

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

to return a specific row (first, in this case. Just pass the <N> of the row). Works also for $user->row(1);

It would be:

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

More details here: http://ellislab.com/codeigniter/user-guide/database/results.html

do something like this

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

$row = $query->row();

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

then echo your results like this

echo $row->username;

if you want to pass it to a view

//in the controller

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

Then echo the same way

echo $row->username;

Suppose for example your model function is like this.......

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

Suppose you are calling this model in your controller function like this

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

then you can echo like this echo $users[0]['user_name'];

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM