gpt4 book ai didi

mysql - 使用 codeigniter 主动查询方法从数据库中选择并统计记录

转载 作者:行者123 更新时间:2023-11-29 07:53:21 26 4
gpt4 key购买 nike

我的数据库中有两个表“tbl_room_info”和“tbl_room_image”。

tbl_room_info结构:

房间 ID |房间名称 |房间详细信息

tbl_room_image结构:

房间 ID |房间图像路径

现在我想从 tbl_room_info 表中获取所有房间信息,并从 tbl_room_image 表中计算我的房间图像编号。例如,考虑 tbl_room_info 有 1 个 room_id 为“2”的记录,tbl_room_image 也有相同的 room_id,有 5 个房间图像。我想在我的 View 页面中实现所有信息,如下所示:

房间名称 |房间详情 |房间图像编号

 1          room details     5

2 room details 6

我的问题是我可以通过正常的 mysql 查询得到这个,例如:

     SELECT `tbl_room_info`.*, COUNT('tbl_room_image.*') AS imc FROM (`tbl_room_info`, `tbl_room_image`) WHERE `tbl_room_info`.`room_id` = tbl_room_image.room_id GROUP BY `tbl_room_info`.`room_id`

但我想要这个 codeigniter 事件记录格式。这是我的查询,它不能正常工作。请帮忙

    $this->db->select('tbl_room_info.*', 'count(tbl_room_image.*) as imc');
$this->db->from('tbl_room_info, tbl_room_image');
$this->db->where('tbl_room_info.room_id = tbl_room_image.room_id');
$this->db->group_by('tbl_room_info.room_id');
return $this->db->get()->result();

这是我的观点:

    <tbody>
<?php foreach($roomlists as $roomlist){?>
<tr>
<td><?php echo $roomlist->room_type;?></td>
<td><?php echo $roomlist->room_name;?></td>
<td><?php echo $roomlist->room_details;?></td>
<td>Total Pictures <span class="badge"><?php echo $roomlist->imc;?></span></td>
</tr>
<?php }?>
</tbody>

最佳答案

使用 Active Record 的 JOIN - $this->db->join();。请尝试以下 -

$this->db->select('tbl_room_info.*, count(tbl_room_image.room_image_path) as imc', FALSE);
$this->db->from('tbl_room_info');
$this->db->join('tbl_room_image', 'tbl_room_info.room_id = tbl_room_image.room_id');
$this->db->group_by('tbl_room_info.room_id');
$query = $this->db->get();

echo $this->db->last_query(); exit; // print resulting query
print_r($query->result()); exit; // check resulting array

if($query->num_rows() > 0)
return $query->result();
return false;


编辑(答案解释):

$this->db->select();中的第二个参数(可选)实际上是一个boolean值(应该是对/错)。默认情况下,该值为TRUETRUE 表示使用反引号 保护选择内容内的所有内容。 FALSE 表示相反,即防止保护它免受 反引号 的影响。为什么我们这样做,因为我们也在选择中添加了 COUNT,它受到 反引号 的保护即 COUNT(tbl_room_image.room_image_path) as imc 这绝对是没有找到这样的列错误。

关于mysql - 使用 codeigniter 主动查询方法从数据库中选择并统计记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25821462/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com