Ho la necessita di impaginare i risultati delle query presenti in questo file, in sostanza vorrei che venissero mostrati una quindicina di record a video e poi ci sia la possibilitā di andare alla pagina successiva o precedente.
ho ptovato cosi ma non va' mi mostra tutti i numeri di pagina e basta...
ho provato solo sul primo if...
Codice PHP:
<h1>Risultati della ricerca</h1>
<?php
error_reporting(E_ALL);
include("config.inc.php");
include("connect.inc.php");
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%' OR ";
}
$query .= "0";
$query = "SELECT id, titolo, ingredienteprincipale, regione FROM DBRicette WHERE " . $query;
$count = mysql_query("SELECT COUNT(*) FROM DBRicette");
$res_count = mysql_fetch_row($count);
// numero totale di records
$tot_records = $res_count[0];
// risultati per pagina(secondo parametro di LIMIT)
$per_page = 10;
// 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;
$query = "SELECT id, titolo, ingredienteprincipale, regione FROM DBRicette LIMIT $primo, $per_page 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>
"; }
// includiamo uno dei files contenenti la paginazione
include("paginazione.php");
// in questa cella inseriamo la paginazione
echo " <tr>\n <td height=\"50\" valign=\"bottom\" align=\"center\">$paginazione</td>\n";
echo " </tr>\n</table>\n</div>";
}
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%' OR ";
}
$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>
"; }
}
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%' OR ";
}
$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>
"; }
}
};
?>
questo č il file di paginazione
Codice PHP:
<?php
$paginazione = "Pagine totali: " . $tot_pages . "
[";
for($i = 1; $i <= $tot_pages; $i++) {
if($i == $current_page) {
$paginazione .= $i . " ";
} else {
$paginazione .= "<a href=\"?page=$i\" title=\"Vai alla pagina $i\">$i</a> ";
}
}
$paginazione .= "]";
?>