Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用codeigniter主动查询方法从数据库中选择和计数记录_Mysql_Codeigniter_Codeigniter 2 - Fatal编程技术网

Mysql 使用codeigniter主动查询方法从数据库中选择和计数记录

Mysql 使用codeigniter主动查询方法从数据库中选择和计数记录,mysql,codeigniter,codeigniter-2,Mysql,Codeigniter,Codeigniter 2,我的数据库中有两个表“tbl_room_info”和“tbl_room_image” tbl\u房间信息结构: 房间标识|房间名称|房间详细信息 tbl\u房间\u图像结构: 房间标识|房间图像|路径 现在我想从我的tbl_room_信息表中获取所有房间信息,并从tbl_room_图像表中计算我的房间图像编号。例如,考虑TBLL ROOMSONFILL有1个记录,其中ROMMyID ID“2”,TBLRROMOMY图像也有相同的ROOMYID ID,有5个房间图像。我希望在我的查看页面中获得以下

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

tbl\u房间信息结构: 房间标识|房间名称|房间详细信息 tbl\u房间\u图像结构: 房间标识|房间图像|路径 现在我想从我的tbl_room_信息表中获取所有房间信息,并从tbl_room_图像表中计算我的房间图像编号。例如,考虑TBLL ROOMSONFILL有1个记录,其中ROMMyID ID“2”,TBLRROMOMY图像也有相同的ROOMYID ID,有5个房间图像。我希望在我的查看页面中获得以下所有信息:

房间名称|房间详细信息|房间图像编号

 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活动记录格式。这是我的问题,它没有正常工作。plz帮助

    $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>

全部图片

使用活动记录的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()中的第二个参数(可选)
实际上是一个
布尔值(应该是真/假)。默认情况下,该值为
TRUE
TRUE
表示使用
反勾号保护选择框内的任何内容
FALSE
表示相反的意思,即防止它受到
反勾号的影响。为什么我们要这样做,因为我们在select中也添加了
,它受到
反勾号的保护,即
计数(tbl\u room\u image.room\u image\u path)作为imc
这肯定是
没有找到这样的列
错误。

它不起作用。我无法从该查询部分获取我的查看页面中的图像计数值的数目,该值为“作为imc计数(tbl_room_image.*)。我获取了错误。将此
计数(tbl\U room\U image.*)替换为imc
,将此
计数(tbl\U room\U image.room\U image\U path)替换为imc
。我相信它会起作用的。检查编辑。我在视图中发现此错误:遇到PHP错误严重性:注意消息:未定义属性:stdClass:$imcArray([0]=>stdClass对象([room\u id]=>1[room\u type]=>1[room\u name]=>Queen room[room\u details]=>Queen-Size-bed最多可睡2张)[1]=>stdClass对象([room\u id]=>2[room\u type]=>1[room\u name]=>两间双人房[房间详细信息]=>两张双人床最多可睡2张)仍然无法获取特定房间的图像数量(奇怪的是,您没有获得
imc
。你能打印查询吗?检查编辑。