This is my first post in here and I hope that you can give me an idea how to resolve an issue. I have a hotel room database and i would like to list them on a grid. Each room has x number of beds and they are stored in the database in this format:
101A
101B
101C
102A
102B
103A
First three numbers represent the room number while A,B,C... the beds.
Im using the following query to list all the rooms:
$stmt = $db->prepare("SELECT PokojID, Symbol, Opis, Lozka, Active
FROM pokoje
WHERE Lozka = :Lozka
OR :Lozka = '0'
AND Active = '1'
ORDER BY Symbol;");`
If i would like only the first room to be displayed i found out that this query works:
$stmt = $db->prepare("SELECT PokojID,
Left(Symbol,3) as Symbol,
Opis, count(Lozka) as Lozka,
Active
FROM pokoje
WHERE Lozka = :Lozka
OR :Lozka = '0'
AND Active = '1'
GROUP BY Left(Symbol, 3)
ORDER BY Symbol;");
I am trying to return the room list as array in the following formar:
dp.resources = [
{
name: "Room 101A", id: "1", expanded: true, children:[
{ name : "Room 101B", id : "2" },
{ name : "Room 101C", id : "3" }
]
},
{
name: "Room 102A", id: "4", expanded: true, children:[
{name : "Room 102B", id : "4" },
]
},
{ name: "Room 103a", id: "5" }
];
This is my php code:
$json = file_get_contents('php://input');
$params = json_decode($json);
$Lozka = isset($params->Lozka) ? $params->Lozka : '0';
//Hostel Mode
$stmt = $db->prepare("SELECT PokojID, Symbol, Opis, Lozka, Active
FROM pokoje
WHERE Lozka = :Lozka
OR :Lozka = '0'
AND Active = '1'
ORDER BY Symbol;");
// Hotel Mode
//$stmt = $db->prepare("SELECT PokojID, Left(Symbol,3) as Symbol, Opis, count(Lozka) as Lozka, Active FROM pokoje WHERE Lozka = :Lozka OR :Lozka = '0' AND Active = '1' GROUP BY Left(Symbol, 3) ORDER BY Symbol;");
$stmt->bindParam(':Lozka', $Lozka);
$stmt->execute();
$rooms = $stmt->fetchAll();
class Room {}
$result = array();
foreach($rooms as $room) {
$r = new Room();
$r->id = $room['PokojID'];
$r->name = $room['Symbol'];
$r->capacity = intval($room['Lozka']);
$r->status = $room['Opis'];
$result[] = $r;
}
header('Content-Type: application/json');
echo json_encode($result);
Thank you in advance.