Buonasera, ho un problema con uno script per impaginare i dati:
info_prodotti.php
Codice PHP:
<?php include("pag.php");?> <?php
if ($all_pages > 1){ if ($pag > 1) { echo "[b]<span class=\"menurosso12\"><a href=\"pag_prodotto.php?pag=" . $pag1 . "&id_affiliato=$id_affiliato\">"; echo "<img src =\"../images/indietro.jpg\" border=\"0\"></a></span>[/b]"; } if ($all_pages > $pag) { echo "[b]<span class=\"menurosso12\"><a href=\"pag_prodotto.php?pag=" . $pag2 . "&id_affiliato=$id_affiliato\">"; echo "<img src =\"../images/avanti.jpg\" border=\"0\"></a></span>[/b]
"; } } ?>
pag.php
Codice PHP:
<?php include_once("../inclusioni/conf.php"); // Creo una variabile dove imposto il numero di record // da mostrare in ogni pagina
$x_pag = 1; // Recupero il numero di pagina corrente. // Generalmente si utilizza una querystring
$pag = $_GET['pag']; // Controllo se $pag è valorizzato... // ...in caso contrario gli assegno valore 1
if (!$pag) $pag = 1; // Mi connetto al database
$conn = mysql_connect($dbhost,$dbuser,$dbpass); mysql_select_db($db, $conn); // Uso mysql_num_rows per contare le righe presenti // all'interno della tabella agenda $all_rows = mysql_num_rows(mysql_query("SELECT id FROM allegato WHERE id_affiliato='$id_affiliato' AND Size>0 AND abilitato='si'")); // Tramite una semplice operazione matematica definisco // il numero totale di pagine $all_pages = ceil($all_rows / $x_pag); // Calcolo da quale record iniziare $first = ($pag - 1) * $x_pag; // Recupero i record per la pagina corrente... // utilizzando LIMIT per partire da $first e contare fino a $x_pag $rs = mysql_query("SELECT * FROM allegato WHERE id_affiliato='$id_affiliato' AND id_prodotto='$id_prodotto' LIMIT $first, $x_pag"); $nr = mysql_num_rows($rs); $pag1= ($pag - 1); $pag2= ($pag + 1); // Se le pagine totali sono più di 1... // stampo i link per andare avanti e indietro tra le diverse pagine! if ($nr != 0){ for($x = 0; $x < $nr; $x++){ $row = mysql_fetch_assoc($rs); $articolo = $row['articolo']; $dim = $row['dim']; $materiale = $row['materiale']; $prezzo = $row['prezzo']; $pr_online = $row['pr_online']; $id = $row['id']; $descrizione = $row['descrizione']; echo "<table width='100%'><tr>"; echo "<td align='left' class='fontnero'>$descrizione
</td></tr>"; echo"<tr>"; echo "<td align='center'><img src =\"mostra_prodotti_big.php?id=" . $row['id'] ."\"> </td>"; echo "</tr></table>"; } }else{ echo "Nessun record trovato!"; } // Chiudo la connessione ad DB mysql_close($conn); ?>
id_affiliato.php e id_prodotto.php, li recupero tramite $_GET, la paginazione funziona in parte, perchè se ad esempio ho 10 prodotti, e id_prodotto=5, il primo record è il numero 5, mentre se clicco sul pulsante avanti, mi fa vedere il numero 2, invece io vorrei vedere il numero 6.