|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Futur Membre du Club
![]() Développeur Web Inscription : novembre 2007 Messages : 185 ![]() |
Bonjour à tous ,
J'ai créé un croisé dynamique en procédant de la manière suivante : - création d'un tableau à deux dimension qui contient des abonnées avec leur options. ex : abonne1 | option 1 | option2 | option3 abonne2 | option 2 | option3 etc Voici le script : Code :
abonne | nom | prénom| adresse| option1| option2| option3 ------------------------------------------------------------------------- abonne1 | zaza | toto | ..........| X | X | abonne2 | zozo | titi | ..........| X | | X Les champs (abonne, nom, prénom, adresse) sont des champs fixe mais les options sont des champs variables : Voici le script SQL de la création de ma table dynamique Code :
Voici le script de mon tableau croisé dynamique : Code :
Quelqu’un aurait-il une solution d'optimisation? Je désespère |
||||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() |
Bonjour,
L'optimisation ne peut se faire que dans MySql, vu le nombre de données, la manière itérative est à proscrire (comme tu l'a constaté par toi-même) Donnes la structure des tables gérant toutes ces informations.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#3 | ||||
|
Futur Membre du Club
![]() Développeur Web Inscription : novembre 2007 Messages : 185 ![]() |
Merci de ta réponse
Voici la structure de ma table mysql qui rempli mon tableau à deux dimensions : Code :
Code :
|
||||
|
|
00
|
|
|
#4 | |
|
Expert Confirmé
![]() ![]() |
Non, on s'est pas compris, c'est pas la structure des tables à remplir qui est importante mais la structure des tables gérant tes abonnées et leurs options.
Histoire de voir s'il est possible de procéder de manière ensembliste. Citation:
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Développeur Web Inscription : novembre 2007 Messages : 185 ![]() |
Il s'agit du 1er script, il gère les abonnes (3eme champs) et les options (avant dernier champs)
J' établie mon croisé dynamique à partir de cette table. |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() ![]() |
Comment tu stockes tes options ? A la queue le leu ? Avec un séparateur, texte code ?
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#7 |
|
Futur Membre du Club
![]() Développeur Web Inscription : novembre 2007 Messages : 185 ![]() |
De la manière suivante:
Abonne options Abonne1 option1 Abonne1 option4 Abonne1 option6 Abonne1 option12 Abonne2 option6 Abonne2 option4 ............ ........ |
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé
![]() ![]() |
Une piste, c'est d'extraire toutes les données en une passe en utilisant GROUP_CONCAT()
Quelque chose comme ça : Code :
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
||
|
00
|
|
|
#9 |
|
Futur Membre du Club
![]() Développeur Web Inscription : novembre 2007 Messages : 185 ![]() |
Mais comment puis-je intégrer ta requête dans mon croisé dynamique avec mes boucles foreach ?
|
|
|
00
|
|
|
#10 | ||
|
Expert Confirmé
![]() ![]() |
Il y a une moyen d'obtenir ton tableau croisé dynamique de manière instantané sans passer par les tables temporaires. C'est rigide mais ça a l'avantage d'être performant.
On suppose que tu as deux tables : t_dvp_abonne(#id, nom) et t_dvp_option(#id, idAbonne, idOption)On pose que tes idOption correspondent à un libellé spécifique (je repris certains de tes libellés). Pour obtenir ton tableau croisé dynamique, il suffit de faire quelque chose comme ça : Code :
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
||
|
00
|
|
|
#11 | ||||||
|
Futur Membre du Club
![]() Développeur Web Inscription : novembre 2007 Messages : 185 ![]() |
Bonjour je viens de construire ma requête pour créer mon croise dynamique:
Code :
Code :
Code :
|
||||||
|
|
00
|
|
|
#12 | ||
|
Expert Confirmé
![]() ![]() |
Bonjour,
Tu concatènes une string avec OR d'où le booléan Voici comment procéder : Code :
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
||
|
00
|
|
|
#13 | ||
|
Futur Membre du Club
![]() Développeur Web Inscription : novembre 2007 Messages : 185 ![]() |
Merci pour ta réponse dsl pour le MP
Avec ce que tu m'a donné j'ai l'erreur de syntaxe suivante : Code :
|
||
|
|
00
|
|
|
#14 |
|
Expert Confirmé
![]() ![]() |
J'ai repris le code, car le code service est un texte et pas un numerique (manquait les guillemets)
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#15 | ||||
|
Futur Membre du Club
![]() Développeur Web Inscription : novembre 2007 Messages : 185 ![]() |
EN faite avec tout les paramètre que j'ai mis dans ma requête je me retrouve avec cette syntaxe :
Code :
Code :
|
||||
|
|
00
|
|
|
#16 |
|
Expert Confirmé
![]() ![]() |
Je t'ai dis que j'avais repris le code, reprends le aussi.
Il te manque des virgules entres les IF.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#17 | ||
|
Futur Membre du Club
![]() Développeur Web Inscription : novembre 2007 Messages : 185 ![]() |
J'ai essayé de mettre des simples cote autour de mes codes services
Code :
|
||
|
|
00
|
|
|
#18 | ||
|
Expert Confirmé
![]() ![]() |
Voici la dernière version du code (copie du msg 12) :
Code :
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
||
|
00
|
|
|
#19 | ||
|
Futur Membre du Club
![]() Développeur Web Inscription : novembre 2007 Messages : 185 ![]() |
Merci beaucoup !!
après quelques modif de syntaxe ça marche Voici la dernière version du code : Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com