real_escape_string($searchValue); $sql .= " AND (nameanalysisvoc LIKE '%$searchValueEscaped%' OR kindanalysisvoc LIKE '%$searchValueEscaped%' OR analysiscode LIKE '%$searchValueEscaped%')"; } // Esegui la query per ottenere il conteggio dei record filtrati $filteredRecordsQuery = "SELECT COUNT(*) as total FROM analysisvocabulary WHERE preferred = 'Y'"; if (!empty($searchValue)) { $filteredRecordsQuery .= " AND (nameanalysisvoc LIKE '%$searchValueEscaped%' OR kindanalysisvoc LIKE '%$searchValueEscaped%' OR analysiscode LIKE '%$searchValueEscaped%')"; } $filteredRecordsResult = $conn->query($filteredRecordsQuery); $totalFilteredRecords = $filteredRecordsResult->fetch_assoc()['total']; // Esegui la query per ottenere il conteggio totale dei record senza filtro $totalRecordsQuery = "SELECT COUNT(*) as total FROM analysisvocabulary WHERE preferred = 'Y'"; $totalRecordsResult = $conn->query($totalRecordsQuery); $totalRecords = $totalRecordsResult->fetch_assoc()['total']; // Aggiungi la limitazione per la paginazione $sql .= " LIMIT $start, $length"; // Esegui la query principale per recuperare i dati $result = $conn->query($sql); $data = []; while ($row = $result->fetch_assoc()) { $data[] = [ 'idanalysisvocabulary' => $row['idanalysisvocabulary'], 'nameanalysisvoc' => $row['nameanalysisvoc'], 'kindanalysisvoc' => $row['kindanalysisvoc'], 'analysiscode' => $row['analysiscode'] ]; } // Prepara la risposta per DataTables $response = [ "draw" => $draw, "recordsTotal" => $totalRecords, "recordsFiltered" => $totalFilteredRecords, "data" => $data ]; // Imposta il tipo di contenuto e restituisci la risposta JSON header('Content-Type: application/json'); echo json_encode($response); $conn->close();