67 lines
1.9 KiB
PHP
67 lines
1.9 KiB
PHP
<?php
|
|
ob_start();
|
|
require_once('include/headscript.php');
|
|
header('Content-Type: application/json; charset=utf-8');
|
|
|
|
$conn = new mysqli($servername, $username, $password, $dbname);
|
|
if ($conn->connect_error) {
|
|
ob_end_clean();
|
|
echo json_encode(['error' => 'Connessione al database fallita: ' . $conn->connect_error]);
|
|
exit;
|
|
}
|
|
|
|
$query = "SELECT
|
|
ss.idserviceschedule,
|
|
s.servicename,
|
|
COALESCE(s.maxcapacity, 0) AS maxcapacity,
|
|
DATE_FORMAT(ss.dateschedule, '%d %M %Y %H:%i') AS display_dateschedule,
|
|
DATE_FORMAT(ss.dateschedule, '%Y-%m-%d %H:%i') AS iso_dateschedule,
|
|
(SELECT COUNT(*)
|
|
FROM bookingclass bc
|
|
WHERE bc.idserviceschedule = ss.idserviceschedule
|
|
AND bc.status != 'cancelled') AS occupied_seats
|
|
FROM serviceschedule ss
|
|
LEFT JOIN service s ON ss.idservice = s.idservice
|
|
ORDER BY ss.dateschedule ASC";
|
|
|
|
$result = $conn->query($query);
|
|
|
|
$classes = [];
|
|
if ($result) {
|
|
$italianMonths = [
|
|
'January' => 'Gennaio',
|
|
'February' => 'Febbraio',
|
|
'March' => 'Marzo',
|
|
'April' => 'Aprile',
|
|
'May' => 'Maggio',
|
|
'June' => 'Giugno',
|
|
'July' => 'Luglio',
|
|
'August' => 'Agosto',
|
|
'September' => 'Settembre',
|
|
'October' => 'Ottobre',
|
|
'November' => 'Novembre',
|
|
'December' => 'Dicembre'
|
|
];
|
|
|
|
while ($row = $result->fetch_assoc()) {
|
|
// Traduci il mese in italiano
|
|
foreach ($italianMonths as $en => $it) {
|
|
$row['display_dateschedule'] = str_replace($en, $it, $row['display_dateschedule']);
|
|
}
|
|
|
|
// Assicura che maxcapacity sia positivo
|
|
if ($row['maxcapacity'] <= 0) {
|
|
$row['maxcapacity'] = 1; // Valore positivo di fallback, cambialo se necessario
|
|
}
|
|
|
|
$classes[] = $row;
|
|
}
|
|
ob_end_clean();
|
|
echo json_encode(['classes' => $classes]);
|
|
} else {
|
|
ob_end_clean();
|
|
echo json_encode(['error' => 'Errore nella query: ' . $conn->error]);
|
|
}
|
|
|
|
$conn->close();
|