Spostarsi avanti ed indietro nel risultato di una query

Un saluto a tutti,

un quesito che probabilmente è banale ma di cui non riesco a venire a capo.

Breve descrizione: programma php per visualizzare il contenuto di una tabella mysql, vorrei che il risultato mostrato a video si interrompesse dopo le
fatidiche tot righe e permettesse all’utente di andare avanti o indietro nella visualizzazione.

Attualmente il programma è così scritto:

[code]// Connessione al database
mysql_connect(“", "", "****”);
mysql_select_db (giornali);

// Ricerca del titolo
$query = “SELECT * FROM monografie ORDER BY titolo”;
$mysql_result = mysql_query($query);

$contariga = 0;
$conta = 0;
while ($row = mysql_fetch_array($mysql_result))
{
$id = ($row’id’]);
$descrizione = ($row’titolo’]);
$coll = ($row’coll’]);
$anno = ($row’anno’]);

print “

”;
print “”;
print "

$descrizione1
  ";
}

mysql_close();[/code]

In un certo punto dovrei insere un contatore che blocca la creazione della lista e visualizza due pulsanti “avanti” e “indietro” che permettono all’utente di tornare indietro di un certo numero di righe o andare avanti alle prossime.

idee ? suggerimenti ? osservazioni ?

Un grazie anticipato

enrico

Ti conviene fare un ciclo for invece di un while così puoi estrarre solo un certo numero di righe dal resultset.
Vedi prima quante righe la query ti restituisce, così puoi sapere di quante righe devi andare avanti o indietro e tieni una variabile globale che ti conta le righe lette in questo momento.

[quote=pagnolo]Ti conviene fare un ciclo for invece di un while così puoi estrarre solo un certo numero di righe dal resultset.
[/quote]

Concordo, sennò occorre mettere un’if da eseguire ad ogni passo e non è molto efficiente.

[quote=pagnolo]Ti conviene fare un ciclo for invece di un while così puoi estrarre solo un certo numero di righe dal resultset.
Vedi prima quante righe la query ti restituisce, così puoi sapere di quante righe devi andare avanti o indietro e tieni una variabile globale che ti conta le righe lette in questo momento.[/quote]

Ok ci sto provando, il problema è che non mi sembra funzioni più questo comando $row = mysql_fetch_array($mysql_result):

[code]
// Conta le schede richieste

$num_rows = mysql_num_rows(mysql_query($query));

$contariga = 0;
$conta = 0;
$i = 0;

for ($i = 1; $i <= $num_rows; $i++)
{
$row = mysql_fetch_array($mysql_result)
echo $row;
echo “
”;
}
mysql_close();[/code]