Ciao a tutti sto creando il mio primo guestbook, però ho un problema non riesco a far estrapolare dal DB
un certo limite di messaggi.
Volevo sapere come dividere in più pagine in modo dinamico i messaggi
Vi ringrazio!!
Ciao a tutti sto creando il mio primo guestbook, però ho un problema non riesco a far estrapolare dal DB
un certo limite di messaggi.
Volevo sapere come dividere in più pagine in modo dinamico i messaggi
Vi ringrazio!!
select ... limit 0,30
per la prima pagina
select ... limit 30, 30
per la seconda
quindi alla fine della query metti limit
i parametri sono 2, il primo indica da quale riga , il secondo quante righe
nel caso dell'esempio ho messo 30 elementi per pagina questo vuol dire che la prima pagina visualizzerà le prime 30 righe ( 1-30 ) la seconda da 31 a 60 e così via
in generale a pagina x se visualizzi y elementi per pagina
la query verrà:
select ... limit (x-1)*y,y
pagina 1---------> (1-1)*30
pagin2 2---------> (2-1)*30
.
.
.
pagina 100-------> (100-1)*30
//ecco il codice
if(isset($_GET['paginaAttuale']))$paginaAttuale = $_GET['paginaAttuale'];
else $paginaAttuale = 1;
$quanti = 30;
$da = ($paginaAttuale-1)*$quanti;
$query = "select .... limit $da, $quanti";
.
.
.
$res = mysql_query(select count(*)... as nrighe from tabella group by ...);
$ris = mysql_fetch_object($res);
$nrighe = $ris->nrighe;
$npagine = ceil($nrighe/$quanti);
if($paginaAttuale > 1){
$paginaPrecedente = $paginaAttuale - 1;
?>
<a href='http://www.miosito.php?paginaAttuale=<?php echo $paginaPrecedente ?>' />
<?php
}
if($paginaAttuale < $npagine){
$paginaSuccessiva = $paginaAttuale + 1;
?>
<a href='http://www.miosito.php?paginaAttuale=<?php echo $paginaSuccessiva ?>' />
<?php
}
?>
//fine codice
quindi lo script:
- recupera il numero di pagina attuale se non lo trova lo setta a 1
-stabilisce quanti elementi visualizzare e lo mette nella variabili $quanti
-in base alla pagina attuale alla variabile quanti imposta da quale elemento visualizzare in poi
-fa la query
*tu visualizzerai il risultato della query
-conta il numero di righe della query che vuoi visualizzare(quindi devi fare la stessa query che fai per visualizzare i dati aggiungendo count e group by e levando limit
-se la pagina attuale è successiva alla prima visualizza il link alla pagina precedente
-se la pagina attuale è precedente all'ultima pagina visualizza il link alla pagina successiva
...più di questo non so cosa dire