2013-02-09 89 views
0

我使用笨從數據庫獲取一個結果,這樣一個結果:笨而不foreach循環

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

我然後得到返回的對象和循環槽它,像這樣:

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

正如你可以想象的那樣,使用循環沒有意義,因爲只有一個結果。有沒有辦法讓用戶參數沒有循環?這條線之間的東西:

echo $user['name']; 

在此先感謝。

回答

7
$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);

-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'];

+0

我認爲$ res-> result(「array」)是錯誤的 – 2013-02-09 13:43:15

+0

我沒有遇到任何與這種語法有關的問題。我通過我的應用程序使用它進行所有查詢。 – 2013-02-09 13:48:03

+0

我從來沒有見過它提到;我只是看到:'你也可以傳遞一個字符串給result(),它代表一個類爲每個結果對象實例化(注意:這個類必須被加載)' – 2013-02-09 13:55:33

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;