Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour,
voila j'ai fais un script de recherche avec une pagination,
quand je fais la recherche il affiche bien les données correspondante. mais mon soucis est que quand je veux passé à la 2eme page avec la pagination, il m'affiche une page vide et non les résultat suivant demandé .
voici le code.
?>
cela doit être une petite erreur (enfin j'espere lol ) mais je la trouve pas.
Pouvez-vous m'aidez a la trouvé svp?
Merci à vous
Gabi
Dernière modification par gabi1202 (26-05-2009 17:13:48)
Hors ligne
Bonjour,
$messageparpage=3;
....
$req=mysql_query("SELECT * FROM recherche WHERE $choix LIKE '%$q%' ORDER BY id DESC LIMIT ".$premiereentree.','.$messageparpage.'');
Vu que ton $messageparpage est fixé à 3, comment veux tu que lorsque tu passes à la 2eme page [censée afficher les enregistrements de 3 à 6], alors que ta requete demande d'afficher les enregistrements de 3 à ..... 3
Penses à ton incrémentation de $messageparpage ou alors à passer par un limit ''.$limiteinferieure.','.$limitesuperieure.'' pour la clarté
ICI, Alex dit des âneries
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
Bonjour,
Je te remercie de ta réponse, mais malgré elle je ne vois pas mon erreur je suis novice en php depuis 3 semaines donc il est vrai que j'ai encore pas mal de difficulté.
pourrais tu m'oriente un peux plus et me dir ce que je dois changé exactement et ou stp? ca serait très sympa.
Merci a toi d'avoir prêter attention a mon poste
Hors ligne
Pour faire simple, tu as posé ta requete en fixant un LIMIT [LIMIT ".$premiereentree.','.$messageparpage.'');] mais dont les paramètres ne sont pas cohérents.
Lorsque tu es sur la première page, ta requete se termine par LIMIT 0,3)
Lorsque tu es sur la deuxième page, ta requete se termine par LIMIT 3,3)
Lorsque tu es sur la troisième page, ta requete se termine par LIMIT 6,3)
En fait, ta variable $messageparpage n'a rien à faire dans ton LIMIT. Comme je te le mets plus haut, tente de clarifier ta requête car tu devrais avoir un LIMIT ''.$limiteinferieure.','.$limitesuperieure.'')
Dans ta boucle [et seulement dans ta boucle], initie une variable $limitsup telle que : $limitesup = $messageparpage*$pageactuelle [en francais, 3x le numéro de la page en cours : exemple page 2 : $limitsup = 3*2 = 6 etc...
Maintenant, compte tenu du fait que tu ais pondu le code ci-dessus, tu ne devrais pas trop avoir de mal à le mettre en oeuvre
Ici, Alnoss dit des âneries encore plus grosses
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
ok je te remercie, je vais partir de tes explication
je te tiens au courant, merci encore a toi.
Hors ligne
Plop,
Heu Alex, STOP ! Tu va nous l'embrouiller là, parce que c'est lui qui a raison ! la syntaxe d'un LIMIT en mysql, ca a jamais été LIMIT debut, fin, mais toujours LIMIT debut, nombre_d_element . Donc sa requete SQL est a priori bonne.
Je vais colorer le code pour mieux voir, mais je pencherai pour un truc genre une variable non définie.
@+
la v2, c'est tabou, on en viendra tous a bout
Hors ligne
Je viens de tester alnoss, mais malheureusement cela ne marche pas plus. ce que je comprend pas c'est que tu me demande de faire une variable comme celle ci
$limitesup = $messageparpage*$pageactuelle
alors que celle ci desous existe déja.
$premiereentree=($pageactuelle-1)*$messageparpage;
comme je dis je suis un débutant donc j'essaie en même temps de comprendre les codes lol ce qui est vraiment pas évident pour moi
Hors ligne
OUPS !! On m'aurait donc menti ??? Effectivement, je suis confus.. A force de courir plusieurs lièvres à la fois, on en perds son latin
Gloire à ManicoW ! Berger qui remets ses brebis dans le droit chemin ^^
Toutes mes excuses à toi, Gabi... je vais me repencher dessus
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
Pas de problème Alnoss,
Je suis déjà très content que vous essayer de m'aider
Hors ligne
Perso je serai partisan d'affiche le requete SQL avant de l'executer, genre
Dès fois, ca permet de voir un soucis.
Ha ben voila, stop, j'ai trouvé, en la recopiant, je tilt.
ton lien pour la page suivante est fait en GET, avec juste le paramètre page. Le premier test du code, c'est
L'appel à la page est pas en post, et meme si il l'étais, y'a rien qui défini rechercher ou choix, donc $q serait vide.
Le problème est donc qu'il faut faire les liens différements. Soit les faire en méthode GET en passant les paramètres supplémentaire et en allant chercher les paramètres en GET si necessaire dans le code (mais ca me parait pas top pour une recherche), soit faire par un système de formulaire pour que les liens soient en post (wai, c'est un peu chiant).
Suffit de regarder google, dans les liens de bas de page, y'a le motif de recherche qui est spécifié dans le lien
Bon courage
@+
la v2, c'est tabou, on en viendra tous a bout
Hors ligne
donc si je comprend bien il ne garde pas en mémoire la recherche effectuer?
ce qui est bizarre c'est ci je fait
$pageactuelle=2 au lieu $pageactuelle=1
il m'affiche bien le contenu de la 2eme page.
Le problème ne viendrait il pas de mes lien incrémenté?
Hors ligne
le problème est résolu,
tu avais raison ManicoW le problème venait bien du mon formulaire.
cela fonctionne correctement maintenant.
encore merci pour l'aide
Hors ligne
Pages :: 1