0 "; $params = []; // Apply Filters if (!empty($search_name)) { $query .= " AND p.name LIKE ?"; $params[] = "%$search_name%"; } if (!empty($search_phone)) { $query .= " AND p.phone LIKE ?"; $params[] = "%$search_phone%"; } if (!empty($search_doctor)) { $query .= " AND v.doctor_id = ?"; $params[] = $search_doctor; } if (!empty($start_date) && !empty($end_date)) { $query .= " AND DATE(v.sick_leave_start_date) BETWEEN ? AND ?"; $params[] = $start_date; $params[] = $end_date; } // Count total for pagination $count_query = "SELECT COUNT(*) FROM (" . $query . ") as total_count"; $stmt = $db->prepare($count_query); $stmt->execute($params); $total_records = $stmt->fetchColumn(); $total_pages = ceil($total_records / $limit); // Add sorting and pagination $query .= " ORDER BY v.sick_leave_start_date DESC LIMIT $limit OFFSET $offset"; $stmt = $db->prepare($query); $stmt->execute($params); $sick_leaves = $stmt->fetchAll(PDO::FETCH_ASSOC); // Fetch doctors for filter $stmt = $db->query("SELECT e.id, e.name_$lang as name FROM employees e JOIN positions po ON e.position_id = po.id WHERE po.name_en = 'Doctor' ORDER BY e.name_$lang"); $doctors = $stmt->fetchAll(PDO::FETCH_ASSOC); ?>
:
:
| # | ||||