|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() |
Bonjour !
J'ai une question existentielle. Je développe un petit moteur de recherche sur une appli web, et je souhaite afficher mes résultats 20 par 20 (histoire de pas se retrouver avec 1600 résultats sur une seule page !) J'ai donc une question de novice a qui on donne plusieurs sons de cloche : 1/ Je fais une requête en ramenant tous mes résultats d'un coup, puis je gère l'affichage de 20 résultats avec mon php ? 2/ Je fais des requêtes avec un rownum <= 20 ou quelque chose comme ca qui me ramène mes résultats 20 par 20 ? Merci pour vos réponses, si je me suis mal exprimée demandez moi !! |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() |
Si c'est du mysql sert toi de la clause LIMIT qui limitera le nombre d'enregistrements retournés
__________________
Le . est la base de toute bonne concaténation, marre de voir des echo "Mavar1 = $toto et Mavar2 = $titi"; ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi; pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi; |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() |
Merci pour ta réponse rapide !
Ce n'est pas du mySQL, c'est du Oracle....et a priori le LIMIT n'existe pas..enfin, d'après mes recherches google !..quelqu'un pourrait t'il me confirmer l'info svp ? Au point du vue requête, c'est pas embetant de faire des aller retour entre la base et le client ? |
|
|
00
|
|
|
#4 | |
|
Membre émérite
![]() |
Citation:
Je confirme sous Oracle ya pas (c'est bien dommage car ça me servirait bien :'( ) Après faire des aller retours entre la base et le client ça va dépendre du nombre d'utilisateurs connectés simultanément, des possibilités de ta base et tout ça... Sinon tu pourrais sélectionner tes enregistrements en limitant à partir de l'index de ta table, et quand tu appelles la page suivante ca incrémente ta limite d'index de +20 par exemple...
__________________
Le . est la base de toute bonne concaténation, marre de voir des echo "Mavar1 = $toto et Mavar2 = $titi"; ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi; pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi; |
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() |
Vi effectivement c'était une idée aussi....mon doute subsiste sur le fait de demander une fois un truc assez gros, ou plusieurs fois un truc plus petit !!
Quand tu parles de selectionner les enregistrements, c bien de bouger mon curseur rownum a chaque fois que je clique sur un bouton "résultats suivants"? |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() |
Après plusieurs débats......
En général lorsqu'on fait une recherche, on a quand même grande chance de trouver son résultat dans les 1ers résultats.... je vais donc opter pour une mini requête et des mini suivantes si on trouve pas dans les 1ers résultats. L'idéal serait aussi la chose suivante : pendant que le bonhomme regarde ses 1ers résultats, la 2è requête part et ramène les résultats suivants, comme ça, s'il en a besoin, il les obtient instantanément !! J'essaie de voir comment faire ça et pitetre je mets un pti bout de code quand j'ai fini.... Merci beaucoup en tout cas ! |
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() Inscription : octobre 2003 Messages : 2 714 ![]() |
Salut,
Si tu fais du preload, tu vas "doubler" le nombre de requête, pour pas grand chose : le temps investi à préloader, sera récupéré par un autre client qui utilisera le moteur de recherche. Donc je ne te le conseille pas La solution du rownum est la meilleure en tout cas : il faut toujours limiter les colonnes également de la requête au strict minimum, c'est pour ça que ton moteur sera super performant si tu utilises un bon rownum, et si tu ne retournes que les colonnes nécessaires à l'affichage de la liste de résultats A+
__________________
K |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com