prepare("SELECT name_$lang FROM doctors WHERE id = ?"); $stmt->execute([$doctor_id]); $doctor_name = $stmt->fetchColumn(); } // Fetch Holidays for the date $holidays_on_date = []; if ($doctor_id) { // Specific doctor holiday check $stmt = $db->prepare("SELECT note FROM doctor_holidays WHERE doctor_id = ? AND ? BETWEEN start_date AND end_date"); $stmt->execute([$doctor_id, $date]); $holiday_note = $stmt->fetchColumn(); if ($holiday_note !== false) { $holidays_on_date[] = [ 'doctor_name' => $doctor_name, 'note' => $holiday_note ]; } } else { // All doctors holiday check $stmt = $db->prepare(" SELECT d.name_$lang as doctor_name, h.note FROM doctor_holidays h JOIN doctors d ON h.doctor_id = d.id WHERE ? BETWEEN h.start_date AND h.end_date "); $stmt->execute([$date]); $holidays_on_date = $stmt->fetchAll(PDO::FETCH_ASSOC); } // Fetch Appointments $query = " SELECT a.start_time, a.end_time, a.status, a.reason, p.name as patient_name, p.tel as patient_tel, d.name_$lang as doctor_name FROM appointments a JOIN patients p ON a.patient_id = p.id JOIN doctors d ON a.doctor_id = d.id WHERE DATE(a.start_time) = ? "; $params = [$date]; if ($doctor_id) { $query .= " AND a.doctor_id = ?"; $params[] = $doctor_id; } $query .= " ORDER BY a.start_time ASC"; $stmt = $db->prepare($query); $stmt->execute($params); $appointments = $stmt->fetchAll(); ?>