php - 从 mysql 查询返回额外的项目

标签 php mysql json select

我正在从数据库中执行选择查询,如下所示:

SELECT DISTINCT r.room_type_id,  rt.room_type_name FROM ROOM as r JOIN ROOM_TYPE as rt 
    ON r.room_type_id = rt.room_type_id Where r.homestead_id = 1
    AND (SELECT Count(*) FROM TENANT as t WHERE r.room_id = t.room_id) < room_capacity 
    AND (room_gender = 'male' OR room_gender='both')

它返回:

+--------------+----------------+
| room_type_id | room_type_name |
+--------------+----------------+
|            1 | Two-bedroom    |
+--------------+----------------+

这正是我想要的。但是当我通过我的 php 运行它时:

function getAvailableRoomTypes($homesteadID,$gender){
    global $con;
    $roomtypes = array();
    //this gets only available rooms
    $sql="SELECT DISTINCT r.room_type_id,  rt.room_type_name FROM ROOM as r JOIN ROOM_TYPE as rt 
    ON r.room_type_id = rt.room_type_id Where r.homestead_id = $homesteadID
    AND (SELECT Count(*) FROM TENANT as t WHERE r.room_id = t.room_id) < room_capacity 
    AND (room_gender = '$gender' OR room_gender='both')";
    $result  = mysqli_query($con, $sql);
    while($row = mysqli_fetch_array($result)){
        $roomtypes += $row;
    }
    var_dump($roomtypes);
    return $roomtypes;
}

我的 var_dump 得到了这个:

array(4) { [0]=> string(1) "1" ["room_type_id"]=> string(1) "1" [1]=> string(11) "Two-bedroom" ["room_type_name"]=> string(11) "Two-bedroom" }

我本以为只会收到这个:

array(4) {["room_type_id"]=> string(1) "1" ["room_type_name"]=> string(11) "Two-bedroom" }

额外的信息是什么? 我怎样才能摆脱它,这样我只能得到纯粹的信息?

之后我会将数组转换为 JSON 对象,并且我希望它只包含必要的部分。

最佳答案

您可以使用mysqli_fetch_assoc代替mysql_fetch_array

关于php - 从 mysql 查询返回额外的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19994182/

相关文章:

mysql条件where子句if值是否为null

MySQL查找多个相同产品的最低价格行

php - 从 mysql 数据库获取选项框的值

json - 使用 ruby​​ on rails 发送 HTTP 请求

php - 如何通过 PDO 在 Mysql 查询中使用变量

php - 从mysql数据库表中选择 future 日期记录

javascript - 如何使用 Grunt 将多个 JSON 文件加载到 Jade 模板中?

javascript - 如何遍历对象的所有属性并删除特定属性AngularJS

php - 像这样写这个MySQL函数会输出什么?

php - MySQL变量超出范围