как отобразить определенные столбцы базы данных, используя цикл while с 3 различными таблицами - PullRequest
1 голос
/ 02 апреля 2019

Я хочу выбрать разные столбцы из 3 разных таблиц и отобразить их в данных таблицы.

У меня есть стол, названный комнатой. в том, что у меня есть два внешних ключа, названных как Hotel_id и Room_Type_id. другие столбцы в таблице номеров - это цена, удобства и т. д. Я хочу получить имя отеля из таблицы отелей, используя FK hotel_id и имя_типа номера из таблицы room_type, используя FK Room_Type_id.

У меня было много мозговых штурмов и я делал отдельные запросы, используя объединения, чтобы найти hotel_name и room_type_name. используя запросы ниже

//Query to find hotel_name

$query = "SELECT hotels.hotel_name FROM hotels INNER JOIN room ON room.Hotel_Id=hotels.hotel_id";
$res = mysqli_query($connection, $query);
while ($data1 = mysqli_fetch_array($res)) {

//Query to find room_type_name:
 $sel_cus = "SELECT room_type.Room_Type_Name FROM room INNER JOIN room_type ON room.room_type=room_type.Room_Type_Id";
$res_cus = mysqli_query($connection, $sel_cus);
while ($data = mysqli_fetch_array($res_cus)) {

//Query to select price,and picture of room:
    $count=1; // counter to print serial numbers in table
$sel_cus = "select * from room Order by room_id ASC";
$res_cus = mysqli_query($connection, $sel_cus);
while ($row = mysqli_fetch_array($res_cus)) {

// here is code to print record in table

    <tbody>
            <tr>
            <td><?php echo $count;  ?></td>

            <td ><?php echo $data1['hotel_name'];?></td> 
                    <td><?php echo $data['Room_Type_Name']; ?></td>
                <td><?php echo $row['price']; ?></td>




  } // End Query to find hotel_name 


                                   } // End Query to find room_type_name:

} // end of Query to select price,and picture of room

код выше итерируйте hotel_name и room_type_name в соответствии с записью, которая находится в таблице комнат. В настоящее время в таблице комнат находится 2 записи, в ней повторяется запись 2 раза. Пожалуйста, помогите мне разобраться в этой проблеме.

Вывод с кодом выше:

Sr      hotel_name         Roomtype   price      picture 
 1       ABC                Delux       600       a.jpg
 2       ABC                Delux       600       a.jpg
 3       XYZ                 Super      8000      bcv.jpg
 4       XYZ                Super       8000      bcv.jpg

I want the output like below
Sr      hotel_name         Roomtype   price      picture 
 1       ABC                Delux       600       a.jpg
 2      XYZ                 Super      8000       bcv.jpg

Пожалуйста, помогите

1 Ответ

1 голос
/ 02 апреля 2019

Вы можете использовать только один запрос, например:

SELECT hotels.hotel_name 
    ,  room_type.Room_Type_Name
    , room.price 
    , room.facilities
    , room.picture 
FROM hotels 
INNER JOIN room ON room.Hotel_Id=hotels.hotel_id
INNER JOIN room_type ON room.room_type=room_type.Room_Type_Id
ORDER BY hotels.hotel_name ,  room_type.Room_Type_Name, room.price 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...