1

私はcodeigniterを使用して、次のようにデータベースから単一の結果を取得しています。

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

次に、返されたオブジェクトを取得し、次のようにループします。

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

ご想像のとおり、結果は1つしかないため、ループを使用しても意味がありません。ループせずにユーザーパラメータを取得する方法はありますか?この行の中に何か:

echo $user['name'];

前もって感謝します。

4

4 に答える 4

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

于 2013-02-09T13:36:37.960 に答える
1

それはそのようになります:

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

詳細はこちら:http ://ellislab.com/codeigniter/user-guide/database/results.html

于 2013-02-09T13:33:40.840 に答える
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;
于 2016-04-29T10:22:46.670 に答える
-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'];

于 2013-02-09T13:36:18.717 に答える