hello,
d'emblée comme ça, cela me semble compliqué avec une requête sql car ton champ positions_id est une chaine implode (1,2,5)....
pourquoi ne pas te créer 2 tables positions et groupes avec un champ commande_id pour faire la jointure ?
Bonjour,
J'ai plusieurs tables mysql :
- commandes
- users
- atelier
- positions
- groupements
| Je souhaite lister toutes les commandes se trouvant dans ma table "COMMANDES" COMMANDES : |
id | agent____id | commande | atelier____id | positions____ids | grps____ids |
|---|---|---|---|---|---|---|
| 1 | 2 | intitule commande 1 | 1 | 1,2,5 | null | |
| 2 | 2 | intitule commande 2 | 1 | 2,3,10 | 9 | |
| 3 | 1 | intitule commande 3 | 1 | null | 22,3 |
etc...
Donc j'ai ma requête :
Jusque là tout fonctionne nickel.
Dans ma table "COMMANDES" j'ai les colonnes "positionsid" et "gprsid" qui contiennent les ids des positions et des groupements des tables respectives "positions" et "groupement"
Ce que je voudrais obtenir au final c'est un array qui se construirait de la façon :
Je ne sais pas du tout si c'est possible de créer une requête retournant un tel résultat.
Si la représentation du résultat voulu ci-dessus n'est pas très clair on peut imaginer que je voudrais faire une requête du genre (j'entends bien que cette écriture n'est pas possible '_' ):
Si toutefois c'est possible, toute aide est la bienvenue.
3 réponses
Bonjour saibe,
J'étais parti sur le format "xx,xx,xx" car utilisable avec une condition du type "WHERE colonne IN (xx,xx,xx,xx,x,x)".
Pour la création des tables pour la jointure, j'ai beaucoup hésité mais c'est le nombre d'enregistrements générés qui m'a freiné.
J'ai environ 30 commandes avec environ 75 positions ou groupements générés par jour.
Le volume d'enregistrements me paraît énorme.
re,
je ne connaissais pas le IN (intéressant ;) merci)
j'ai fait quelques tests... sans boucle php je n'arrive pas à récupérer toutes les infos... c un pb intéressant, parce qu'il est logique :)
j'ai tenté de le prendre à l'envers et récupérer toutes les positions fct d'une commande... c 1 idée... ;)
après, il me semble difficile d'obtenir le format que tu demandes avec une seule requête SQL... je peux me tromper...
mais je verrai davantage la récupération d'une table jointée avec ton cmd_id sur plusieurs rows et une tite routine toute simple pour fabriquer ton array formaté...
désolé de ne pouvoir t'aider. je passe la main à plus expert (mais je regarde quand même ;))
++