Problème avec pagination en PHP

ib02 Messages postés 246 Date d'inscription   Statut Membre Dernière intervention   -  
ib02 Messages postés 246 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je voudrais qu'on m'indique ce qui ne va pas dans le code ci-dessus. Il est censé m'afficher le resultat d'une recherche effectuée dans ma base sur plusieurs pages, avec un lien entre elles (pagination du resultat de la recherche). Quand je fais une recherche, la première page s'affiche normalement, mais quand je clique sur le lien des pages suivantes, il y a une erreur;

<?php
$messagesParPage=3;

$prenom=$_POST['prenom_recherche'];
$nom=$_POST['nom_recherche'];

mysql_connect("localhost","test","test");
mysql_select_db("notice");

$retour_total=mysql_query('SELECT COUNT(*) AS total FROM commun');
$donnees_total=mysql_fetch_assoc($retour_total);
$total=$donnees_total['total'];
$nombreDePages=ceil($total/$messagesParPage);
if(isset($_GET['page']))
{
$pageActuelle=intval($_GET['page']);
if($pageActuelle>$nombreDePages)
{
$pageActuelle=$nombreDePages;
}
}
else
{
$pageActuelle=1;
}
$premiereEntree=($pageActuelle-1)*$messagesParPage;
$retour_messages="SELECT * FROM `commun` WHERE prenom ='$prenom' AND nom = '$nom' ORDER BY numero_enregistrement LIMIT 0,3.";
$resultat=mysql_query($retour_messages) or die( 'Erreur sql:<br>' .$resultat .mysql_error());
?>
......................
...................
<?php
$a=mysql_num_rows($resultat);
if($a==0){ echo "Ce nom n'exite pas dans notre base";}
?>
......................

<?php
while ($ligne=mysql_fetch_array($resultat))
{

$prenom=$ligne['prenom'];
$nom=$ligne['nom'];
$date_naissance=$ligne['date_naissance'];
$nationalite=$ligne['nationalite'];
$numero_enregistrement=$ligne['numero_enregistrement'];
?>
<tr>
<td><?php echo $prenom; ?></td>
<td><?php echo $nom; ?></td>
<td><?php echo $date_naissance; ?></td>
<td><?php echo $nationalite; ?></td>
<td><?php echo $numero_enregistrement; ?></td>
<?php }?>
.....................
......................
<?php
echo 'Page : ';
for($i=1; $i<=$nombreDePages; $i++)
{

if($i==$pageActuelle)
{
echo $i ;
}
else
{
echo ' <a href="recherche_notice.php?='.$i.'">'.$i.'</a> ';
}
}
?>
.............
.......................
L'erreur qui s'affiche lorsque je clique sur le lien d'une page est : Undefined index: prenom_recherche in ......, et de même pour nom_recherche. Je ne sais pas en réalité comment m'en sortir; je veux que les resultats de ma recherche s'affichent sur des pages (2,3,4,..) en fonction de leur importance.
A voir également:

6 réponses

Ozimandias Messages postés 505 Date d'inscription   Statut Membre Dernière intervention   46
 
Au début de ta page: tu initialises tes variable avec des valeurs transmises par POST
$prenom=$_POST['prenom_recherche'];
$nom=$_POST['nom_recherche']; 


Mais si tu clique sur ton lien ci-dessous, les valeurs de POST ne seront pas retransmises...
<?php
echo 'Page : ';
for($i=1; $i<=$nombreDePages; $i++)
{

if($i==$pageActuelle)
{
echo $i ;
}
else
{
echo ' <a href="recherche_notice.php?='.$i.'">'.$i.'</a> ';
}
} 


Vu que ta page sera rechargée, et qu'elle ne reçoit rien par POST, tes variables ne sont pas initialisées et mysql_query recherche:

$retour_messages="SELECT * FROM `commun` WHERE prenom = RIEN AND nom = RIEN ORDER BY numero_enregistrement LIMIT 0,3."; 


D'où un résultat vide pour ta requète.
0
ib02 Messages postés 246 Date d'inscription   Statut Membre Dernière intervention   5
 
Votre description est impeccable, mais comment faire pourque ça marche!
0
P@t@ch0n Messages postés 565 Date d'inscription   Statut Membre Dernière intervention   85
 
Une recherche s'effectue toujours en method GET, pas en POST.

En GET, tu n'aurais plus ce problème.

Et bon sang, sécurise ton script.
0
ib02 Messages postés 246 Date d'inscription   Statut Membre Dernière intervention   5
 
Au fait, je viens de mettre Get à la place de POST au niveau du formulaire et au niveau du script PHP comme suit

$prenom=$_GET['prenom_recherche'];
$nom=$_GET['nom_recherche'];

Mais le problème persiste; toujours mes champs ('prenom_recherche' et 'nom_recherche') ne sont pas reconnus sur les autres pages, si je clique sur leurs liens.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
P@t@ch0n Messages postés 565 Date d'inscription   Statut Membre Dernière intervention   85
 
Bah, il te suffit de repasser les valeurs dans l'url de tes liens.

$_SERVER['REQUEST_URI'] te permettra de récupérer l'url de la page en cours avec les valeurs get.
0
ib02 Messages postés 246 Date d'inscription   Statut Membre Dernière intervention   5
 
Je m'excuse, mais j'ai pas très bien saisi, où dois-je mettre $_SERVER['REQUEST_URI'] dans mon code PHP, pour récuperer l'URL de la page en cours.
0