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();