У меня есть база данных с резервированием для предметов. Все бронирования имеют: ID, идентификатор элемента, personWhoBookedId, time_from (unixtime), time-to (unixtime).
Мне нравится отображать ежедневное расписание от часа к часу, раскрашивать время, за которое товар забронирован, и отображать personWhoBookedID на этом таймфрейме.
нравится:
room1:
5:00 - 6:00: free
6:00 - 7:00: booked by[person]
8:00 - 9:00:free
и
room 2:
5:00 - 6:00: free
6:00 - 7:00: booked by[person]
8:00 - 9:00: booked by[person]
и т.д.
В это время я перебираю существующие элементы с помощью mysql, а затем проверяю на таймфрейме с помощью mysql, есть ли резервирование, равное itemID и timeis между указанным периодом времени от и до времени до 1013 *
Это работает, но выполняет много запросов к базе данных.
Чтобы повысить производительность, я думаю, мне лучше получить все резервирования и сохранить их в многомерном массиве, например:
$allreservationsperday = mysql_query("select id, personid, itemid, time_from, time_to FROM reservations where time_from >= '$unixfrom' and time_to < '$unixto'");
while($reservationarray = mysql_fetch_array($allreservationsperday)){
$res[$reservationarray ["id"]]["personid"] = $reserveringenarray["personid"];
$res[$reservationarray ["id"]]["itemid"] = $reserveringenarray["itemid"];
$res[$reservationarray ["id"]]["time_from"] = $reserveringenarray["time_from"];
$res[$reservationarray ["id"]]["time_to"] = $reserveringenarray["time_to"];
}
, а затем отобразить временную шкалу с помощью цикла Loop для просмотра часов дня.
Но я не могу понять, как проверить в час, есть ли резервирование в только что сформированном массиве.
Любая помощь приветствуется!
Йерун