[RESOLU] PDO afficher produit en php

ynx
Mammouth du PHP | 586 Messages

25 sept. 2014, 11:22

@arnaud69 : l'index d'un tableau commence bien à 0, mais l'identifiant de ses boutiques commence à 1.
Il doit donc commencer sa boucle à 1, d'autant plus qu'il utilise des clés non numériques, ce qui n'empêche pas le tableau de commencer à l'index 0 :
Array {
'prix_boutique1' => value, /* index 0 */
'prix_boutique2' => value, /* index 1 */
...
}

Eléphant du PHP | 151 Messages

25 sept. 2014, 11:31

@arnaud69 : l'index d'un tableau commence bien à 0, mais l'identifiant de ses boutiques commence à 1.
Il doit donc commencer sa boucle à 1, d'autant plus qu'il utilise des clés non numériques, ce qui n'empêche pas le tableau de commencer à l'index 0 :
Array {
'prix_boutique1' => value, /* index 0 */
'prix_boutique2' => value, /* index 1 */
...
}
Je n'avais point tout lu ! La question a donc trouvé ainsi une réponse pleine de complétude :lol: :lol:
Développeur d'applications pour intranets industriels (IHM), DBA Oracle, auto entrepreneur. Je fuis les frameworks car je pense comme Rasmus Lerdorf : "all PHP frameworks suck"...
Je me suis lancé dans la reprise du projet PhpMyNewsletter (GNU GPL), que je vous invite à essayer.

echo ($user=='enregistré?"je t'aide":"je t'aide pas !");

ynx
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

Eléphant du PHP | 134 Messages

25 sept. 2014, 11:48

je pense qu'il y a possibilité sans modifier a la main en faisant une requete qui sortirai l'id de boutique et qu'ensuite on applique une variable genre $var.= 'requete avec id'; dans une boucle for non ? je dois pas etre très clair

ynx
Mammouth du PHP | 586 Messages

25 sept. 2014, 11:59

Effectivement il est aussi possible de construire dynamiquement la requête que je t'ai proposé à partir d'une liste de id_boutique ;)