Bonjour,

J'ai une page de réponse à un formulaire.php
dans laquelle j'ai limité la pagination à 10 réponses/pages.
ça fonctionne.
Mais bizarrement lorsqu' il n'y a que 1 page de réponses, ça m'affiche quand même le lien vers 3 pages.
En première page il y a toutes les réponses normales à la requête (et ça devrait s'arrêter là...). Sauf que ça pagine une 2ème et 3ème pages inutiles
et qui font apparaitre tout les enregistrements de la base...

Je suppose que ce doit être un problème de syntaxe au niveau du décompte des pages...mais je vois pas.

Je me permets de mettre le code de cette page:
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
86
87
88
89
90
91
92
93
94
95
 
<?php
//Connexion à la base de données
mysql_connect('XX', 'XX', 'XX');
mysql_select_db('XX');
 
$messagesParPage=10; 
//Nous allons afficher 10 messages par page.
 
//Une connexion SQL doit être ouverte avant cette ligne...
$retour_total=mysql_query('SELECT COUNT(*) AS total FROM Agence_immobiliere'); //Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
$total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.
 
//Nous allons maintenant compter le nombre de pages.
$nombreDePages=ceil($total/$messagesParPage);
 
if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
{
     $pageActuelle=intval($_GET['page']);
 
     if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
     {
          $pageActuelle=$nombreDePages;
     }
}
else // Sinon
{
     $pageActuelle=1; // La page actuelle est la n°1    
}
 
$premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire
 
//Préparation de la requête
 
$page = isset($_GET['page']) ? $_GET['page'] : ''; 
 
// Prepare le requete MySql
if(isset($_POST['toutescommunes']))
{ 
  $choix1 = $_POST[''];
} 
else 
{ 
 $choix1 = $_POST['communes'];
} 
 
 
 
$choix1 != "";
 
$finrequete = "(Nom_commune LIKE '%$choix1%')";
 
 
// La requête sql pour récupérer les messages de la page actuelle.
$retour_messages=mysql_query('SELECT * FROM Agence_immobiliere WHERE '.$finrequete.' ORDER BY identifiant DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'');
 
while($donnees_messages=mysql_fetch_assoc($retour_messages)) // On lit les entrées une à une grâce à une boucle
{
 
  echo '

             <div style="border:solid; border-width:1px; width:1002px; align: center; margin-left:7%">
             <table width="1000"  align="center" cellpadding="0" cellspacing="0" bgcolor="#FCFAE1">
                <tr>
<td><a href="images_agence.php?id='.$donnees_messages['Identifiant'].'" style="text-decoration:none; color:black">
<strong>Identifiant : '.stripslashes($donnees_messages['Identifiant']).'</strong></a></td><td> 

'.stripslashes($donnees_messages['Nom_commune']).' - '.stripslashes($donnees_messages['Type_bien']).' - '.stripslashes($donnees_messages['Type_bien2']).' -
 '.stripslashes($donnees_messages['Prix']).' euros - '.stripslashes($donnees_messages['Nombre_pieces']).' pièce(s) - 
'.stripslashes($donnees_messages['Dimension']).' m2 <br>
<i>  '.stripslashes($donnees_messages['Descriptif']).'</i><br><br>

                 </td>
                </tr>
                </table>'; 
}
 
 
 
echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
{
     //On va faire notre condition
     if($i==$pageActuelle) //Si il s'agit de la page actuelle...
     {
         echo ' [ '.$i.' ] '; 
     }	
     else //Sinon...
     {
          echo ' <a href="reponse_agence.php?page='.$i.'">'.$i.'</a> ';
     }
}
 
?>
C'est d'autant plus étrange que j'ai utilisé le même code de pagination pour une autre page de requête et que là, ça fonctionne. Mais même en comparant les deux je vois pas d'où ça vient...

Quelqu'un verrait -il où ça cloche??

Merci par avance pour vos réponses,
Nal