0

次のように、データベースから選択クエリを実行しています。

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 オブジェクトに変換しますが、必要な部分だけを含めたいと考えています。

4

1 に答える 1

1

mysqli_fetch_assocの代わりに使用できますmysql_fetch_array

于 2013-11-15T05:35:22.760 に答える