= :startDate"; } if (!empty($endDate)) { $query .= " AND start_time <= :endDate"; } $query .= " ORDER BY start_time DESC, id DESC LIMIT :limit OFFSET :offset"; $stmt = $pdo->prepare($query); // Bind parameter pencarian if (!empty($search)) { $stmt->bindValue(':search', '%' . $search . '%', PDO::PARAM_STR); } // Bind parameter filter tanggal if (!empty($startDate)) { $stmt->bindValue(':startDate', $startDate, PDO::PARAM_STR); } if (!empty($endDate)) { $stmt->bindValue(':endDate', $endDate, PDO::PARAM_STR); } $stmt->bindValue(':limit', $limit, PDO::PARAM_INT); $stmt->bindValue(':offset', $offset, PDO::PARAM_INT); $stmt->execute(); $data = $stmt->fetchAll(PDO::FETCH_ASSOC); $totalRows = $stmt->rowCount(); echo json_encode(['data' => $data, 'total' => $totalRows]); ?>