2016-06-01 4 views
0

私はPHPでMVCを使用しています。私のスクリプトは、foreachループでも複数のレコードではなく、単一のレコードしか表示していないようです。ここでCodeIgniter、クエリでは1つのレコードしか表示されません

は私のコードです:

モデル

public function rp_reach_rate_stmt() 
{ 
    $stmt = $this->db->select(array('user_id','user','full_name'))->get('vicidial_users',10); 
    // $stmt = $this->db->get('vicidial_users',10); 
    return $stmt->row(); 
} 

コントローラ

public function rp_reach_rate() 
{ 

    $this->load->model('db_model'); 
    $data['sqlstmt'] = $this->rp_reach_rate_get_data(); 
    $this->load->view('RP_ReachRate',$data); 
} 

private function rp_reach_rate_get_data() 
{ 
    $this->load->model('db_model'); 
    $result = $this->db_model->rp_reach_rate_stmt(); 
    return $result; 
} 

ビュー

<?php 
    var_dump($sqlstmt);echo '<br />'; 
    foreach($sqlstmt as $row) 
    { 
     echo $row." "; 

    } 
?> 

RESULT

オブジェクト(はstdClass)#19(3){[ "USER_ID"] =>列(1) "1" [ "ユーザ"] => 列(4) " 6666" [ "FULL_NAME"] =>の文字列(5) "管理者"}

1 6666管理

私が何かを見逃している可能性があります。

+1

codeigniterのユーザーではありませんが、マニュアルでは 'このメソッドは単一の結果行を返します。クエリに複数の行がある場合は、最初の行のみが返されます。 'https://www.codeigniter.com/userguide3/database/results.html私の推測では' row'ではなく 'result'を使ってください。 – chris85

+0

fyi - 取得部分では、10個のレコードを返すように制限しています。すべてのレコードが返されるようにしたい場合は、削除してください:、10 – cartalot

答えて

1
public function rp_reach_rate_stmt() 
    { 
     $stmt = $this->db->select(array('user_id','user','full_name'))->get('vicidial_users',10); 
    // $stmt = $this->db->get('vicidial_users',10); 
     return $stmt->result_array(); 
    } 

変化$stmt->row()$stmt->result_array()に上記のように、テスト。すべての行が配列として配列&を返します。オブジェクトとしてアクセスする必要がある場合は、result_array()の代わりにを使用してください。

+0

こんにちは、これを試してみましょう。迅速な対応に感謝します。 :) – DonX

+0

配列に文字列変換エラーがあります。 Iは{ \t \t \t \tが$行エコー「「 \t \t \t($ $行としてSQLSTMT)ビュー内 のforeachを右ここで、このビットを把握する必要があります。 \t \t \t} – DonX

+0

'echo $ row ['DB_coulmn_name']'使用する場合は 'result_array()' –

関連する問題