- Home
- Categorie
- Coding e Sistemistica
- PHP
- Paginazione con parametro $-GET...
-
Paginazione con parametro $-GET...
Buon giorno a tutti, ho provato a cercare nel forum ma non ho ancora trovato una soluzione al mio problema.
Devo impaginare i risultati facendo visualizzare 10 record per pagina.
In pratica ho un form da cui scelgo una categoria di ricette e questo passa il valore dell'id_cat tramite $_GET alla pagina di visualizzazione.
Fin qui tutto bene se si tratta di visualizzare la prima pagina, ma quando passo alla seconda pagina mi restituisce o risultati.
Se invece eseguo lo stesso script impostandogli manualmente il valore della variabile $id allora tutto funziona bene.
Vi posto il codice della pagina di visualizzazione sperando che qualcuno mi illumini sull'errore.....<?php include("statistiche/conf/conf.php"); //$i=$_GET['id']; //$id=$i; $id=5; $elems_per_page = 10; // Elementi per ogni pagina $page = $_GET[page]; if(!($page)) { $page = 1; } $primo = ($page-1) * $elems_per_page ; /*$sql = ""; if($filtro && $filtro != "$i") { $sql = " AND id_cat = '$filtro'"; } */ $query = "SELECT * FROM ricette WHERE id_cat='$id'"; $result = mysql_query($query) or die("Select last failed $query"); $num_rows = mysql_num_rows($result); $tot_pagine = ceil($num_rows / $elems_per_page); $prev_page = $page - 1; $next_page = $page + 1; $query .= " ORDER BY ricetta LIMIT $primo, $elems_per_page"; $result = mysql_query($query) or die("Select last failed $query"); $num_rows = mysql_num_rows($result); $query = "SELECT * FROM ricette WHERE id_cat='$id' ORDER BY ricetta"; $elenco = mysql_query($query, $connect) or die(mysql_error()); $row = mysql_fetch_assoc($elenco); $totalRows = mysql_num_rows($elenco); ?> </head> <body> <div id="contenitore"> <div align="center"> <?php include('header.php'); ?> <br /> <br /> <div id="statistiche"> <div align="left"> <?php include("statistiche/utentionline.php"); ?> <br /> <?php include("statistiche/contatore.php"); ?> <br /> <?php include("statistiche/registrati.php"); ?> </div> </div> </div> <div id="centro_dx">Scegli una categoria...<br /> <br /> <br /> <?php echo "Sono presenti n. ".$totalRows." ricette." ?> <br /> <?php while ($line = mysql_fetch_assoc($result)) { ?> <table width="65%" border="1" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="50%" align="left"><?php echo $line['ricetta']; ?></td> <td width="5%" align="center"><a href="elenco_x_cat.php?id=<?php echo $line['id_cat']; ?>" title="Clicca qui per visualizzare"><img src="icone/cerca_16x16.gif" width="16" height="16" border="0" /></a></td> </tr> </table> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center"><?php } echo "<br>"; if($prev_page > 0) echo "<a href='?filtro=$filtro&page=$prev_page'>pagina precedente</a>"; if($tot_pagine > 0) echo "pagina $page di $tot_pagine "; if($next_page <= $tot_pagine) echo "<a href='?filtro=$filtro&page=$next_page'> pagina successiva</a>"; echo "<br>"; echo "<br>"; ?> </td> </tr> </table> </div> </div> </body> </html>
Grazie a tutti in anticipo...
-
Ciao
Ti do un consiglio vecchio quanto la programmazione. Fai stampare a schermo la variabile che passi tramite l'url e verifica che sia passata correttamente.
Anche perché se impostandola manualmente funziona, il problema è tutto lì...
Io proverei per prima cosa a sostituire
$page = $_GET[page];con
$page = $_GET['page'];
-
ok...adesso faccio un po' di prove e poi ti faccio sapere.
Grazie ancora per la dritta.
-
@claudioweb said:
Ciao
Ti do un consiglio vecchio quanto la programmazione. Fai stampare a schermo la variabile che passi tramite l'url e verifica che sia passata correttamente.
Anche perché se impostandola manualmente funziona, il problema è tutto lì...
Io proverei per prima cosa a sostituire
$page = $_GET[page];con
$page = $_GET['page'];
Niente da fare non carica la variabile nelle pagine successive.....
Come devo fare per far stampare la variabile nell'url (sono ancora novellino con php)?
-
La parte in grassetto è l'aggiunta che ho fatto al tuo codice, prova e fammi sapere.
if($prev_page > 0)
echo "<a href='?**id=" . $_GET['id'] . "&**filtro=$filtro&page=$prev_page'>pagina precedente</a>";
if($tot_pagine > 0)
echo "pagina $page di $tot_pagine ";
if($next_page <= $tot_pagine)
echo "<a href='?**id=" . $_GET['id'] . "&**filtro=$filtro&page=$next_page'> pagina successiva</a>";CIAO
-
@mikslap said:
La parte in grassetto è l'aggiunta che ho fatto al tuo codice, prova e fammi sapere.
if($prev_page > 0)
echo "<a href='?**id=" . $_GET['id'] . "&**filtro=$filtro&page=$prev_page'>pagina precedente</a>";
if($tot_pagine > 0)
echo "pagina $page di $tot_pagine ";
if($next_page <= $tot_pagine)
echo "<a href='?**id=" . $_GET['id'] . "&**filtro=$filtro&page=$next_page'> pagina successiva</a>";CIAO
....sei mitico .....funziona alla grande...
Grazie 1000!!!!Ciao, alla prossima.