Sto utilizzando uno script trovato online per impaginare dei dati e va tutto bene se non per i tasti "Avanti" e "Indietro", che servono appunto per cambiare pagina. Il problema è il seguente:
Ho una variabile di nome $pag che indica la pagina (è un numero), ma se provo a fare $pag + 1 o - 1 il numero della pagina 'scompare', o meglio: Se provo a stampare a video $pag è corretto, ma se provo a stampare a video $pag + 1 non appare nulla, come mai? Questo è lo script:
Codice PHP:
<?php
// Creo una variabile dove imposto il numero di record
// da mostrare in ogni pagina
$x_pag = 15;
// 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 || !is_numeric($pag)) { $pag = "1"; header ('Location: ?pag=1'); }
// Uso mysql_num_rows per contare le righe presenti
// all'interno della tabella agenda
$all_rows = mysql_num_rows(mysql_query("SELECT id FROM simpson_users"));
// 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 simpson_users ORDER BY id ASC LIMIT $first, $x_pag");
$nr = mysql_num_rows($rs);
if ($nr != 0){
echo <<<EOT
<table>
<thead>
<tr>
<th>ID</th>
<th>Username</th>
<th>Pagina</th>
</tr>
</thead>
<tbody>
EOT;
for($x = 0; $x < $nr; $x++){
$row = mysql_fetch_assoc($rs);
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['username'] . "</td>";
echo "<td><a href='user.php?id=" . $row['id'] . "' target='_blank'>Guarda pagina</a>";
echo "</tr>";
}
echo '</tbody>
</table>';
}else{
echo "Nessun utente trovato!";
}
// Se le pagine totali sono più di 1...
// stampo i link per andare avanti e indietro tra le diverse pagine!
if ($all_pages > 1){
if ($pag > 1){
$pagina_avanti = $pag + 1;
$pagina_indietro = $pag - 1;
echo "<a href='" . $_SERVER['PHP_SELF'] . "?pag=" . $pagina_indietro . "'>";
echo "<button>Indietro</button></a> ";
}
if ($all_pages > $pag){
echo "<a href='" . $_SERVER['PHP_SELF'] . "?pag=" . $pagina_avanti . "'>";
echo "<button>Avanti</button></a>";
}
}
?>