我正在尝试获取循环中的查询结果,但我无法获取循环中查询返回的所有记录,请指导我。
$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) )
答案 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());