2012-02-08 12 views
1

ループ内にあるクエリの結果をフェッチしようとしていますが、ループ内のクエリによって返されたすべてのレコードを取得できません。ループ内のクエリCodeigniterの結果配列を取得する方法

$qry = ''; 
    $qry = "SELECT  
      `user_id` FROM 
      `view_property_user_lab`"; 
    $qry .= " WHERE property_id = '" . $propId . "'"; 
    $result = $this->db->query($qry); 
    $result_count = $result->result_array(); 
    foreach ($result_count as $row) 
    { 
     $user_name_qry = "SELECT 
           `name` 
            FROM USER 
            WHERE user_id = '" . $row['user_id'] . "'"; 
            $user_name_result = $this->db->query($user_name_qry); 
    } 

    $result_count_user = $user_name_result->result_array(); 
    print_r($result_count_user); 

これは私があなたの問題はあなたがforeachループを使用していることだと思いますが、毎回あなたがに同じ変数($user_name_result)を上書きとあなただけの使用配列

Array ([0] => Array ([name] => abc)) 
+0

クエリは、あなたのループがそれぞれの新しいユーザーと一緒に成長します、特に以来、非常に悪い考えです。 –

答えて

2

のダンプです最後のものは結果リソースからデータを取得するように割り当てられています(ループの外に呼び出すためです)。

しかし、すべての点で、terskoがコメントで言ったように、ループでクエリを実行するのは良いことではありません。

あなたは(ただし、ちょうどここにあなたのテーブルのスキーマを推測)に入社クエリですべてを簡素化することができます:ループ内

$sql = "SELECT u.name FROM view_property_user_lab AS v JOIN user AS u ON u.user_id = v.user_id WHERE v.property_id = ?"; 
$query = $this->db->query($sql,array($propID)); 

print_r($query->result_array()); 
関連する問題