【发布时间】:2020-02-10 07:56:34
【问题描述】:
我的 PHP 代码:
function getMasterBookRoomsaAvailability(){
$DisponibilitaRoom = [
'Resource' => null,
'IntervalTime' => [],
];
$conn = new mysqli($this->servername, $this->username, $this->password,$this->MySQLDB);
$sql = "SELECT IDRoom,Nomeroom,Dayofweek,Nome,Aperto,OrarioApertura,OrarioChiusura,Durataminuti FROM room
INNER JOIN giorni ON room.IDRoom = giorni.FKRoom
INNER JOIN durategame ON room.IDRoom = durategame.FKRoom
WHERE room.Statobloccato <> 1";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row/*
while($row = $result->fetch_assoc()) {
$IDRoom = $row['IDRoom'];
$Nomeroom = $row['Nomeroom'];
$Dayofweek = $row['Dayofweek'];
$Nome = $row['Nome'];
$Aperto = $row['Aperto'];
$OrarioApertura = $row['OrarioApertura'];
$OrarioChiusura = $row['OrarioChiusura'];
$Durataminuti = $row['Durataminuti'];
$DisponibilitaRoom['Resource'] = $Nomeroom;
$DisponibilitaRoom['IntervalTime'][$Nome] = $this->selectTimesOfDay($OrarioApertura,$OrarioChiusura,$Durataminuti);
}
}
return $DisponibilitaRoom;
}
// Funzione: prende tutti gli orari di intervallo tra due date splittate dalla durata.
// Params: Array contenente Orario Apertura della room, Orario di chiusura della room, durata prenotabile
// Resultset: restituisce un Array contenente gli orari disponibili
function selectTimesOfDay($startTime,$endTime,$duratagame) {
$hours = null;
//var_dump($DisponibilitaRoom);
$open_time = strtotime($startTime);
$close_time = strtotime($endTime);
$duratagame = $duratagame * 60;
$output = "";
for( $i=$open_time; $i<$close_time; $i+=$duratagame) {
//if( $i < $now) continue;
$output = date("H:i",$i);
$hours[] = date('H:i', $i);
}
return $hours;
}
echo json_encode($RB->getMasterBookRoomsaAvailability());
我的结果是这样的:{"Resource":"Padel 1","IntervalTime":{"Lun":["11:00"],"Mar":["11:00"],"Mer":["11:00"],"Gio":["11:00","12:00","13:00","14:00","15:00","16:00","17:00","18:00"],"Ven":["11:00"],"Sab":["11:00"],"Sun":["09:00","10:00","11:00","12:00","13:00","14:00","15:00","16:00","17:00","18:00"]}}
但缺少“网球 1”资源及其所有可用时间。
我不知道语义正确的方式,你知道吗?
我期待这样的事情:
资源
- 帕德尔 1
-- LUN ['09:00','10:00','11:00']
-- 三月 ['09:00','10:00']
...
- 网球 1
-- LUN ['09:00','10:00','11:00']
-- 三月 ['09:00','10:00']
【问题讨论】:
-
你每次只覆盖循环中的数据。
-
是的,它肯定被覆盖了,但是如何推送下一个“资源”呢?一周中的每一天都有一行
-
nbk 我没有错误生成 JSON,但是如何推送下一个资源。请先阅读问题。