[英]codeigniter single result without foreach loop
我正在使用codeigniter從數據庫中獲取單個結果,如下所示:
$user = $this->db->query("SELECT * FROM users LIMIT 1");
然后,我以這種方式獲取返回的對象並循環通過它:
foreach ($user->result() as $row) { ... }
可以想象,使用循環是沒有意義的,因為只有一個結果。 有沒有一種方法可以獲取用戶參數而不循環? 此行中的內容:
echo $user['name'];
提前致謝。
$user = $this->db->query("SELECT * FROM users LIMIT 1")->row();
將其作為對象( echo $user->name;
)
$user = $this->db->query("SELECT * FROM users LIMIT 1")->row_array();
因為具有作為數組( 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);
這將是:
$user = $this->db->query("SELECT * FROM users LIMIT 1")->row_array();
此處有更多詳細信息: http : //ellislab.com/codeigniter/user-guide/database/results.html
做這樣的事情
//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;
例如,假設您的模型函數是這樣的……
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'];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.