|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Futur Membre du Club
![]() Développeur Web Inscription : novembre 2007 Messages : 185 ![]() |
Bonjour à tous,
Je voudrais afficher pour chaque abonné les options qu'il posséde: Pour cela j'ai une requête: Code :
abone1 : option15,option16,option22,option05, abone2 : option07,option16,option14,option03, etc J'ai reussi a arrivé à ce resultat mais le temps d'éxécution et beaucoup trop long : notament du fait que j'éxécute une requete dans une boucle while: Voici comment je fais: Code :
Quelqu'un saurait-il comment optimiser tout ça ? Merci d'avance |
||||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Jérémy Étudiant Inscription : octobre 2009 Messages : 236 ![]() |
Pourquoi dans ton SELECT tu met abonne ? Tu cherche juste à retourner les options donc
Code :
SELECT option from osm_option where abonne='$abonne'
|
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Développeur Web Inscription : novembre 2007 Messages : 185 ![]() |
Mais puisque dans ma clause WHERE je mets abonne='$abonne' je suis obligé de le mettre dans le select sinon j'ai une erreur.
Mais n'y a t-il pas une autre methode moin lourd d'afficher : abone1 : option15,option16,option22,option05, abone2 : option07,option16,option14,option03, |
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() Jérémy Étudiant Inscription : octobre 2009 Messages : 236 ![]() |
C'est faux, tu n'est pas obligé d'affiché une valeur sur laquelle tu fait une exception, pas besoin du DISTINCT non plus car tu n'as "normalement" pas de redondance d'option pour un abonné.
|
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Développeur Web Inscription : novembre 2007 Messages : 185 ![]() |
Merci de ces petits conseil gwharl, mais cela ne resoud pas mon problème d'optimisation
|
|
|
00
|
|
|
#6 | ||
|
Membre du Club
![]() Développeur Web Inscription : avril 2011 Messages : 36 ![]() |
Tu pourrais ne faire qu'une seule requête et trier le résultat, par exemple :
Code :
SELECT DISTINCT abonne,option from osm_option where abonne IN ('abone1', 'abonne2', etc ...); Code :
|
||
|
|
00
|
|
|
#7 | ||
|
Futur Membre du Club
![]() Développeur Web Inscription : novembre 2007 Messages : 185 ![]() |
Merci westdigit pour ta réponse
J'ai une erreur de syntaxe à ce niveau la : Code :
|
||
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() Développeur Web Inscription : avril 2011 Messages : 36 ![]() |
Ah oui dsl, remplace les deux for par des foreach
(ca c'est à force de passer du java au php ^^) |
|
|
00
|
|
|
#9 | ||||
|
Futur Membre du Club
![]() Développeur Web Inscription : novembre 2007 Messages : 185 ![]() |
Effectivement sa marchemieu avec foreach
Par contre j'ai une autre erreur: Code :
erreur: Code :
|
||||
|
|
00
|
|
|
#10 |
|
Membre éclairé
![]() Jérémy Étudiant Inscription : octobre 2009 Messages : 236 ![]() |
|
|
|
00
|
|
|
#11 |
|
Membre du Club
![]() Développeur Web Inscription : avril 2011 Messages : 36 ![]() |
oups faut que j'aille dormir un peu ^^
Code :
if(!in_array($ligne['abonne'],$abonnes)) |
|
|
00
|
|
|
#12 | ||
|
Futur Membre du Club
![]() Développeur Web Inscription : novembre 2007 Messages : 185 ![]() |
Merci pour ces petites corrections
Par contre mes options s'affichent mais pas mes abonnés Code :
|
||
|
|
00
|
|
|
#13 | ||||||
|
Futur Membre du Club
![]() Développeur Web Inscription : novembre 2007 Messages : 185 ![]() |
J'ai trouvé en faite l'erreur se trouve au moment ou je rempli mon tableau à deux dimension:
Code :
Code :
Code :
|
||||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com