在循环中查询如何在Codeigniter中获取结果数组

时间:2012-02-08 05:56:25

标签: php mysql 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);

这是数组的转储

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

1 个答案:

答案 0 :(得分:2)

我认为您的问题是您正在使用foreach循环,但每次覆盖相同的变量($user_name_result)并且您只使用分配的最后一个来获取数据来自结果资源(因为你在外面调用循环!)。

但总而言之,正如tersko在评论中所说,在循环中进行查询并不是一件好事(击中你的数据库,你的用户增加的越多)。

您可以使用JOINed查询简化所有内容(但这里只是猜测您的表架构):

$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());
相关问题