Problème requètes sur 2 tables
Bonjour/soir
Bon d'après le titre pas très explicite, je pense que vous vous dite que c'est une question bidon etc :) et bien oui probablement pour certain d'entre vous (je l'espère) cette question sera résolu en 2 minutes en 35 secondes..
Pour ma part cela fait 8h et toujours pas de réponse :(
Voila mon souci:
j'ai 2 tables distinct dont voici la structure
Table 1: cmd
Code:
1 2 3 4
|
cmd_id | user_id | User_name
1 | 1 | Random name
2 | 1 | Random name |
Table 2: item_cmd
Code:
1 2 3 4 5
| cmd_id | Item_id | item_name | qty | comment
1 | random | Nom item | 526 | commentaire
1 | random | Nom item2 | 26 | commentaire2
1 | random | Nom item3 | 56 | commentaire3
2 | random | Nom item | 6 | commentaire |
Ma requete SQL maintenant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| global $context;
//// Recup des commandes
$req=("SELECT CMD.cmd_id,
CMD.user_id,
CMD.user_name,
ICMD.item_id,
ICMD.item_name,
ICMD.qty,
ICMD.comment
FROM swc.cmd as CMD
JOIN swc.item_cmd as ICMD
ON CMD.cmd_id = ICMD.cmd_id
;
");
$execreq=ExecRequete($req,$Connexion);
while ($row = mysql_fetch_assoc($execreq)) {
$context['cmd'][] =
array (
'cmdid' => $row["cmd_id"],
'uid' => $row["user_id"],
'uname' => $row["user_name"],
'iid' => $row["item_id"],
'iname' => $row["item_name"],
'qty' => $row["qty"],
'com' => $row["comment"]
);
} |
En faisant un print_r($context['cmd']);
j'obtiens ceci:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| Array
(
[0] => Array
(
[cmdid] => 1
[uid] => 1
[uname] => Nameuserd
[iid] =>
[iname] => itemnameI
[qty] => 78
[com] => Test item com
)
[1] => Array
(
[cmdid] => 1
[uid] => 1
[uname] => Nameuser
[iid] =>
[iname] => item2
[qty] => 1
[com] => com2
)
[2] => Array
(
[cmdid] => 1
[uid] => 1
[uname] => Nameuser
[iid] =>
[iname] => item3
[qty] => 1
[com] => Testing
)
[3] => Array
(
[cmdid] => 2
[uid] => 1
[uname] => Nameuser
[iid] =>
[iname] => erker
[qty] => 85
[com] => test2
)
) |
Or cela ne me conviens pas.
Pourquoi?
J'aimerai au final pouvoir avec 1 array par cmd_id distinct.
En gros, quand un user passe une commande, il ecrit dans la table1 (cmd) l'id de la commande, son id et son nom.
Puis il ecrit dans la table2 (item_cmd) l'id de la cmd, l'id de l'item, le nom de l'item, la quantité et u commantaire et ceci pour chaque item. (si il commande 3 items il y aura 3 lignes donc 3 fois l'id de la cmd)
Mon problème se pose ici, je n'arrive pas a récupérer les donné que je veux.
Je voudrai faire un tableau par cmd_id distinct mais mon code me créer 1 table pour chaque cmd_id de ma table2. dans l'exemple que je vous donne il me créer 4 tableau or je n'es que 2 commandes (je voudrai donc avoir que 2 tableau.)
Je vous ce que je voudrai comme array:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| Array
(
[0] => Array
(
[cmdid] => 1
[uid] => 1
[uname] => Nameuserd
[iid] => array(
[0] =>
[1] =>
[2] =>
)
[iname] => array(
[0] => itemnameI
[1] => item2
[2] => item3
)
[qty] => array(
[0] => 78
[1] => 1
[2] => 1
)
[com] => array(
[0] => Test item com
[1] => com2
[2] => Testing
)
[1] => Array
[cmdid] => 2
[uid] => 1
[uname] => Nameuser
[iid] => array(
[0] =>
)
[iname] => array(
[0] => erker
)
[qty] => array(
[0] => 85
)
[com] => array(
[0] => test2
)
) |
Je ne sais pas si ce que je demande est possible ou non?
Merci d'avance pour votre aide et aussi pour avoir lu mon post incompréhensible jusqu'au bout :)
Cdlt!