Mammouth du PHP |
586 Messages
25 sept. 2014, 11:33
On reprend depuis le début : la solution que j'aurais du te conseiller dès le début est de changer ta requête pour récupérer directement le résultat attendu.
La requête que je te propose est donc celle-ci :
SELECT id_produit,
CASE WHEN id_boutique = 1 THEN prix END AS prix_boutique1
CASE WHEN id_boutique = 2 THEN prix END AS prix_boutique2
CASE WHEN id_boutique = 3 THEN prix END AS prix_boutique3
FROM catalogue
GROUP BY id_produit
Cette requête nous retourne donc une seule ligne pour chaque produit avec le prix de chaque boutique (ou NULL si le prix d'une boutique n'est pas définie pour un produit), soit par exemple :
id_produit | prix_boutique1 | prix_boutique2 | prix_boutique3
1 | 50 | NULL | 60
2 | NULL | 10 | 20
3 | 28 | 30 | 34
Le parcours de ces résultats est donc beaucoup plus simple, il te suffit d'afficher directement les résultats de ta requête.
L'inconvénient et que le nombre de boutique est fixe (puisque écrit en dur dans la requête), tu devras donc modifier ta requête pour afficher le prix d'une quatrième boutique.
Source pour la création de la requête :
http://stackoverflow.com/questions/1241 ... to-columns
Bonne journée