Salve a tutti,
dovrei creare un calendario per la disponibilità di camere, che mostra le camere disponibili nel calendario. Ecco dove sono arrivato fin ora:
Ho una tabella chiamata camere (all'interno vi sono i vari campi, elenco solo quelli più utili per la disponibilità):
TAB_CAMERE
ID | NOME | INVENTARIO
La colonna inventario sarebbe il numero di camere per quella tipologia.
TAB_DISPONIBILITA
ID_DISP | FROM | TO | CAM_ID | TOTAL_ROOM | BLOCKED_INVENTORY
Codice PHP:
<?php
$nomiCamere = array();
$camere = mysqli_query($conn, "SELECT * FROM camere WHERE hotel_id = '$hotel_id' ");
$camereTotal = mysqli_num_rows($camere);
while ( $camereDate = mysqli_fetch_array($camere, MYSQL_ASSOC)) {
if($camereDate['id_camera'] > 0) {
$nomi = array(
'id_camera' => $camereDate['id_camera'],
'nome_camera' => $camereDate['nome_camera'],
'numero_camere' => $camereDate['numero_camere']
); array_push($nomiCamere, $nomi);
}}
function dni_mies($mies,$cyear) {
$dni = 31;
while (!checkdate($mies, $dni, $cyear)) $dni--;
return $dni;
}
function calcolo_mese() {
(!isset($_GET['m'])
|| !is_numeric($_GET['m'])
|| !checkdate($_GET['m'], 1, 2015))
? $dat=date("m") : $dat=$_GET['m'];
return $dat;
}
function calcolo_anno() {
$dat = date("Y");
return $dat;
}
$mese = calcolo_mese();
$anno = calcolo_anno();
?>
<table class="table table-bordered responsive">
<thead>
<tr>
<?php
echo '<td>Nome camera</td>';
for ($d = 1; $d <= dni_mies($mese,$anno); $d++) {
echo '<td>'.$d.'</td>';
}
?>
</tr></thead>
<tbody>
<?php
foreach($nomiCamere as $nome) {
echo '<tr><td style=\"font-size: 10px; font-weight: bold;\">'.$nome['nome_camera'].'</td>';
for ($i = 1; $i <= dni_mies($mese,$anno); $i++) {
$mese = str_pad($mese, 2, "0", STR_PAD_LEFT);
$day = str_pad($i, 2, "0", STR_PAD_LEFT);
$data = $anno.'-'.$mese.'-'.$day;
echo '<td id="'.$data.'" style="width: 15px; text-align: center; background: green; font-size: 12px;">';
$customavailable = mysqli_query($conn, "SELECT * FROM booking_check_avilability WHERE check_in_date = '$data' AND room_type_id = '".$nome['id_camera']."'");
$customavailabletotal = mysqli_num_rows($customavailable);
while($customavailableData = mysqli_fetch_array($customavailable)) {
$camere_disponibili = $nome['numero_camere'] - $customavailableData['total_room'] - $customavailableData['blocked_inventory'];
echo $camere_disponibili.'</td>';
}
}
echo '</tr>';
}
?></tbody></table>
Quest'ultimo mi genera un errore per ogni giorno del mese:
Warning: mysqli_query(): Couldn't fetch mysqli in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\admin\disp_mensile.php on line 229
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\admin\disp_mensile.php on line 230
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\admin\disp_mensile.php on line 231
Le righe in questione sono:
Codice PHP:
$customavailabletotal = mysqli_num_rows($customavailable); //229
while($customavailableData = mysqli_fetch_array($customavailable)) { //230
$camere_disponibili = $nome['numero_camere'] - $customavailableData['total_room'] - $customavailableData['blocked_inventory']; //231