Bonjour,

J'ai un leger problème sur de la pagination. En fait, je fais une requete SQL et il me ressort beaucoup de resultats, et je l'affichiche donc sur plusieurs pages.

Seulement, je voudrais que ce soir l'utilisateur qui choisisse le nombre de resultats à afficher par page à l'aide d'un menu déroulant (ou autre si il y a plus simple). Jusque là tout vas bien, si je choisis d'afficher seulement X resultats par page c'est ce qu'il fait, sauf que lorsque je clique sur page 2, il reprend sa valeur par défaut, et moi j'aimerai bien qu'il garde la valeur choisie par l'utilisateur.

Voici mon 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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<form method="post" name="ResultatPage" action="resultat_reseau.php">
<label>Nombre de resultat par page :</label>
<select name="NombreResultat">
<option value="5">5</option>
<option value="10">10</option>
<option value="25">25</option>
<option value="50">50</option>
</select>
<input type="submit" name="ok" value="Ok">
</form>
<p>
<?php
if (isset($_POST['NombreResultat'])){
	$NombreResultat=$_POST['NombreResultat'];
}
else{
 	$NombreResultat="10";
}
 
//On se connecte à MySQL 
$db = mysql_connect('localhost', 'root', ''); 
 
//On sélectionne la base 
mysql_select_db('doc',$db);
 
$nombreDeDonnesParPage = $NombreResultat;
 
//On récupère le nombre total de donnes
$retour = mysql_query('SELECT COUNT(*) AS id_doc FROM doc_reseau');
$donnees = mysql_fetch_array($retour);
$totalDeDefinition = $donnees['id_doc'];
 
//On calcule le nombre de pages à créer
$nombreDePages = ceil($totalDeDefinition / $nombreDeDonnesParPage );
 
if (isset($_GET['page'])){
	$page = $_GET['page'];
}
else{
	$page = 1;
}
$premiereDefinitionAafficher = ($page - 1) * $nombreDeDonnesParPage ;
 
$reponse = mysql_query('SELECT * FROM doc_reseau ORDER BY nom_doc ASC LIMIT ' . $premiereDefinitionAafficher . ', ' . $nombreDeDonnesParPage );
 
while($row = mysql_fetch_assoc($reponse))
{ 
//On affiche les informations de l'enregistrement en cours 
echo "<table border cellspacing=\"0\">";
	echo "<tr>";
		echo "<td>";
			echo "<a target=\"_blank\" href=\"../upload/$row[type_doc]/$row[nom_doc]$row[ext_doc]\"><img src=\"../images/icone_ouvrir.png\" width=\"20\" height=\"25\" align=\"left\"><br>";
		echo "</td>";
		echo "<td width=\"250\" align=\"center\">";
			echo "</a>$row[nom_doc]";
		echo "</td>";
		echo "<td width=\"100\" align=\"center\">";
			echo $row['type_doc'];
		echo "</td>";
		echo "<td width=\"100\" align=\"center\">";
			echo $row['ext_doc'];
	echo "</tr>";
echo "</table>";
}
echo "<br>";
 
//On fait une boucle pour écrire les liens vers chacune des pages
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
	echo '<a href="resultat_reseau.php?page=' . $i . '">' . $i . '</a> ';
}
 
if (isset($_GET['page']))
{
	$page = $_GET['page'];
}
else
{
	$page = 1;
}
//On ferme la connexion à mysql 
mysql_close();
echo "<br><br>";
?>
A savoir que je suis souple sur la façon de choisir le nombre de pages, si il y a mieu, je suis prenneur.

Merci d'avance de vos réponses,
Dino.