ci deve essere per forza qualche errore, se eseguo la query sulla portata selezionando antipasto ottengo 2 come numero di pagine il che sta a significare che ci sono 2 pagine contenenti 15 ( $step=15) ricette ciascuna cosa non possibile perche' ho provato sul db attualmente in linea e ne risultano molte di piu'. Allora mi son detto proviamo ad aumentare il limite nella variabile step a 150000 e vediamo cosa succede; i record vengono estratti tutti e a fondo pagina compare correttamente il numero 1 che indica il numero delle pagine generate dalla query.
Cosa c'e' di sbagliato??
ecco lo script come è ora
Codice PHP:
<h1>Risultati della ricerca</h1>
<?php error_reporting(E_ALL); include ("config.inc.php"); include ("connect.inc.php"); // imposto il limit per la query If (!isset ($start) OR $start < 0) $start = 0; $step = 150000; if ($_POST) { if ($_POST['azione'] == "cerca") { $chiave = $_POST['chiave']; $keys = explode(",", $chiave); $query = ""; reset($keys); while (list(, $parola) = each($keys)) { $parola = trim($parola); if ($parola != "") $query .= "titolo LIKE '%$parola%' OR ingredienti LIKE '%$parola%' OR tipopiatto LIKE '%$parola%' OR ingredienteprincipale LIKE '%$parola%' OR regione LIKE '%$parola%' OR note LIKE '%$parola%' LIMIT $start, $step "; } // $query .= "0"; $query = "SELECT id, titolo, ingredienteprincipale, regione FROM DBRicette WHERE " . $query; $result = mysql_query($query, $db); //echo $query; //dopo l'esecuzione di una query ne mostra il risultato a video while ($row = mysql_fetch_array($result)) { echo "<a href=\"index.php?pag=15&id=$row[id]\">" . " $row[titolo]" . " </a>
"; } // ricavo il numero totale di record $query1 = "SELECT COUNT(*) FROM DBRicette WHERE " . $query; $result1 = mysql_query($query); // record complessivi $tot_righe = mysql_result($result1, 0); // totale pagine $tot_pagine = ceil($tot_righe / $step); echo ($tot_pagine); } elseif ($_POST['azione'] == "principale") { $chiave = $_POST['chiave']; $keys = explode(",", $chiave); $query = ""; reset($keys); while (list(, $parola) = each($keys)) { $parola = trim($parola); if ($parola != "") $query .= " ingredienteprincipale LIKE '%$parola%' LIMIT $start, $step "; } // $query .= "0"; $query = "SELECT id, titolo, ingredienteprincipale FROM DBRicette WHERE " . $query; $result = mysql_query($query, $db); //echo $query; dopo l'esecuzione di una query ne mostra il risultato a video while ($row = mysql_fetch_array($result)) { echo "<a href=\"index.php?pag=15&id=$row[id]\">" . " $row[titolo]" . " $row[ingredienteprincipale]</a>
"; } // ricavo il numero totale di record $query1 = "SELECT COUNT(*) FROM DBRicette WHERE " . $query; $result1 = mysql_query($query); // record complessivi $tot_righe = mysql_result($result1, 0); // totale pagine $tot_pagine = ceil($tot_righe / $step); echo ($tot_pagine); } elseif ($_POST['azione'] == "portata") { $chiave = $_POST['chiave']; $keys = explode(",", $chiave); $query = ""; reset($keys); while (list(, $parola) = each($keys)) { $parola = trim($parola); if ($parola != "") $query .= "tipopiatto LIKE '%$parola%' LIMIT $start, $step "; } // $query .= "0"; $query = "SELECT id, titolo, tipopiatto FROM DBRicette WHERE " . $query; $result = mysql_query($query, $db); //echo $query; dopo l'esecuzione di una query ne mostra il risultato a video while ($row = mysql_fetch_array($result)) { echo "<a href=\"index.php?pag=15&id=$row[id]\">" . " $row[titolo]" . " $row[tipopiatto]</a>
"; } // ricavo il numero totale di record $query1 = "SELECT COUNT(*) FROM DBRicette WHERE " . $query; $result1 = mysql_query($query); echo($result1); // record complessivi $tot_righe = mysql_result($result1, 0); // totale pagine $tot_pagine = ceil($tot_righe / $step); echo ($tot_pagine); } } ; ?>