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:
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();
?>
Sapete dirmi dove sbaglio????