Bonjour

Je suis en train de développer un affichage avec pagination. Imaginons que j'ai par exemple 3 pages. En bas de chaque page il y a des liens pour passer d'une page à l'autre (1,2,3).
Actuellement quand j'arrive sur la page 1, pas de souci mes enregistrements sont bien afficher aléatoirement. Mais quand je vais sur la page 2, je retrouve des enregistrements que j'avais en page 1. Et si je réaffiche la page 1, elle est différente du premier affichage de la page 1 que j'avais effectué précédemment.

Je souhaiterais obtenir un affichage aléatoire des 3 pages sans doublon, et en quelque sorte "mémoriser" les pages de façon à ce que si je vais de page en page je me retrouve toujours avec la même page 1, la même page 2, etc...

Voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// Numéro de la page à afficher
//on verifie si la variable $pg est definie, sinon on l'initialise a 1
if(!isset($_GET['page'])){$page = 0;}
else{$page = $_GET['page'];}
 
//on verifie si la variable qui est censée être un numero de page
// est bien un chiffre pour éviter une injection mysql
if(!is_numeric($page)){$page = 0;} 
 
// Nombre de résultats par page
$nb = 12;
// Assure au moins $nb résultats par page
if(isset($_GET['nb'])) {
$nb = max(intval($_GET['nb']), $nb); 
}
 
// Nombre total d'enregistrements
$sql = 'SELECT COUNT(*) FROM identification WHERE actif = 1;';
$query = mysql_query($sql, $connexion)
or die('Erreur MySQL : '.mysql_error());
 
$row = mysql_fetch_row($query);
 
$total = $row[0];
 
// Nombre maximum de pages (ceil arrondit au nombre supérieur)
$max_pg = ceil($total / $nb);
 
// Selection des enregistrements pour la page considérée
$sql = 'SELECT id_membre, date_naissance, pseudo, id_pays, id_ville,
actif FROM identification 
WHERE actif = 1 ORDER BY RAND() LIMIT '.($page * $nb).','.$nb.''
or die('Erreur MySQL : '.mysql_error());
 
$query = mysql_query($sql, $connexion)
or die('Erreur MySQL : '.mysql_error());
 
while($list = mysql_fetch_assoc($query)) {
 
// affichage des enregistrements
 
} // Fin du while
 
mysql_close();
 
// Les liens de pagination (1,2,3, etc)
for($i = 0 ; $i < $max_pg ; $i++) {echo ' <a href="?page='.$i.'&nb='.$nb.'">'.($i+1).'</a>';}
?>
Le problème vient du fait que je fais l'ORDER BY RAND() à chaque fois,
mais je suis débutant je ne sais pas comment faire...

Merci pour votre aide