Ciao a tutti.

Lo so, è un argomento trattato e ritrattato, ho fatto una ricerca sul forum e sul web ed ho preso un codice che ho riadattato, però non funziona bene.
Spero mi possiate aiutare, non sono molto bravo con il php.

Il codice è questo:
codice:
<?php

$x_pag = 5;
$pag = $_GET['pag'];

if (!$pag) $pag = 1; 

$conn = mysql_connect("localhost","utente","password");
mysql_select_db("nome_db", $conn);

$all_rows = mysql_num_rows(mysql_query("SELECT id FROM agenda"));
$all_pages = ceil($all_rows / $x_pag);
$first = ($pag - 1) * $x_pag;

$rs = mysql_query("SELECT * FROM agenda LIMIT $first, $x_pag");
$nr = mysql_num_rows($rs);
if ($nr != 0){
  for($x = 0; $x < $nr; $x++){
    $row = mysql_fetch_assoc($rs);
    echo "<table><tr>";
    echo "<td>" . $row['id'] . "</td>";
    echo "<td>" . $row['nome'] . "</td>";
    echo "<td>" . $row['telefono'] . "</td>";
    echo "</tr></table>";
  }
}else{
  echo "Nessun record trovato!";
}

if ($all_pages > 1){
  if ($pag > 1){
    echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?pag=" . ($pag - 1) . "\">";
    echo "Pagina Indietro</a>";
  } 
  if ($all_pages > $pag){
    echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?pag=" . ($pag + 1) . "\">";
    echo "Pagina Avanti</a>";
  } 
}

mysql_close($conn);

?>
Le modifiche che ho fatto sono solo nel SELECT.
Il codice funziona solo in parte, visualizza solo i primi risultati della ricerca nella prima pagina.

Es.. Se i risultati sono 10 records, divisi 5 per pagina, visualizza solo i primi 5 nella prima pagina, clicco su avanti per vedere la seconda pagina con gli altri risultati e non li visualizza.

Purtroppo non capisco il perchè.
Le ricerche che ho fatto non mi hanno aiutato molto, perchè non ho capito il problema.

Grazie.