Dunque: io ho un motore di ricerca che mi estrae dati da db Mysql.
Dal momento che i dati possono essere molti, effettuo una paginazione passando di pagina in pagina i parametri con i valori della ricerca.
Nella prima pagina tutto va bene: effettua l'estrazione correttamente, e pagina. Se però vado a navigare tra le pagine NON MI TROVA NIENTE: i record trovati vanno a zero. Ho controllato e ricontrollato le variabili, e sono giuste...
Vi posto il codice:
Sapete dirmi dove sbaglio????codice:<?php if ($_REQUEST['tipologia']==="tutte") { $tipologia=""; } else { $tipologia=$_REQUEST['tipologia']; } if ($_REQUEST['sezione']==="tutte") { $sezione=""; } else if ($_REQUEST['sezione']==="A. USL 6 Livorno") { $sezione="Livorno"; } else { $sezione=$_REQUEST['sezione']; } if ($_REQUEST['categoria']==="tutte") { $categoria=""; } else { $categoria=$_REQUEST['categoria']; } $parola=$_REQUEST['parola']; list($giorno, $mese, $anno) = explode('/', $_REQUEST['data_da']); $da_data = "$anno-$mese-$giorno"; list($giorno1, $mese1, $anno1) = explode('/', $_REQUEST['data_a']); $a_data = "$anno1-$mese1-$giorno1"; $stato=$_REQUEST['stato']; if ($_REQUEST['stato']==="tutti") { $stato=""; } ....... // connessione al database mysql_connect("ip", "utente", "password") or die("Connessione fallita !"); // selezione del DB mysql_select_db("nomedb") or die("Selezione del DB fallita !"); // esecuzione prima query $count = mysql_query("SELECT COUNT(id) FROM garecompless where oggetto LIKE '%$parola%' AND tipologia LIKE '%$tipologia%' AND sezione LIKE '%$sezione%' AND categoria LIKE '%$categoria%' AND stato LIKE'%$stato%' AND giorno BETWEEN '$da_data' AND '$a_data'"); $res_count = mysql_fetch_row($count); // numero totale di records $tot_records = $res_count[0]; // risultati per pagina(secondo parametro di LIMIT) $per_page = 20; // numero totale di pagine $tot_pages = ceil($tot_records / $per_page); // pagina corrente $current_page = (!$_GET['page']) ? 1 : (int)$_GET['page']; // primo parametro di LIMIT $primo = ($current_page - 1) * $per_page; // esecuzione seconda query con LIMIT $query_limit = mysql_query("SELECT id, oggetto, categoria, tipologia, sezione, stato, DATE_FORMAT(giorno,'%d/%m/%Y') as data FROM garecompless where oggetto LIKE '%$parola%'AND tipologia LIKE '%$tipologia%' AND sezione LIKE '%$sezione%' AND categoria LIKE '%$categoria%' AND stato LIKE'%$stato%' AND giorno BETWEEN '$da_data' AND '$a_data' ORDER BY giorno DESC LIMIT $primo, $per_page"); while($results = mysql_fetch_array($query_limit)) ... $paginazione = "Pagine totali: " . $tot_pages . " ["; for($i = 1; $i <= $tot_pages; $i++) { if($i == $current_page) { $paginazione .= $i . " "; } else { $paginazione .= "<a href=\"?page=$i&parola=$parola&tipologia=$tipologia&sezione=$sezione&categoria=$categoria&stato=$stato&data_da=$da_data&data_a=$a_data\" title=\"Vai alla pagina $i\">$i</a> "; } } $paginazione .= "]"; echo " $paginazione"; mysql_free_result($count); mysql_free_result($query_limit); mysql_close(); ?>
![]()

Rispondi quotando