Comment afficher un groupe de valeur

Eléphant du PHP | 91 Messages

13 oct. 2009, 19:36

Bonjour,

Savez vous comment on affiche un groupe de valeur d' une table ?

Par exemple: pour afficher une valeur on fait SELECT FROM WHERE , on créer la requête et on fait un echo

Mais pour un groupe de valeur, comment s'y prendre?


Merci

ViPHP
AB
ViPHP | 5818 Messages

13 oct. 2009, 22:41

Tu aurais pas un exemple plus précis ?

Eléphant du PHP | 91 Messages

14 oct. 2009, 09:43

Tu aurais pas un exemple plus précis ?
Oui, J'ai une table commande avec les valeurs suivantes (juste un exemple)
id  commande   produit    quantite    prix unitaire
----------------------------------------------
1  44589         produit A     2            $5
2  44589         produit B     1            $2
3  33111         produit A     3            $5
4  33111         produit B     2            $2
5  33111         produit C     1            $3
Ce que je cherche c'est pouvoir afficher par exemple les lignes 3, 4 et 5 de la commande 33111 ou bien les lignes 1et 2 de la commande 44589 sur une page php. En bref afficher toutes lignes (produit,quantité et prix) appartenant a un numéro de commande

Savez vous comment je dois m'y prendre?


Merci

Petit nouveau ! | 2 Messages

14 oct. 2009, 10:05

Hé bien tu peux faire quelque chose comme ça:
$query = "SELECT produit, quantite, prix_unitaire
                 FROM matable
               WHERE commande = 33111";

$res = mysql_query($query);

while ($r = mysql_fetch_object($res)) {
  echo $r->produit.' - '.$r->quantite.' - '.$r->prix_unitaire.'<br />';
}

Eléphant du PHP | 91 Messages

14 oct. 2009, 14:11

Hé bien tu peux faire quelque chose comme ça:
$query = "SELECT produit, quantite, prix_unitaire
                 FROM matable
               WHERE commande = 33111";

$res = mysql_query($query);

while ($r = mysql_fetch_object($res)) {
  echo $r->produit.' - '.$r->quantite.' - '.$r->prix_unitaire.'<br />';
}
OK. Mais dans le cas ou client veut imprimer la facture de sa commande, comment savoir que la 33111 est bien la commande actuelle et pas une ancienne? N y a t'il pas un petit bout de code php que l'on peut ajouter dans SELECT pour selectioner la commande actuelle et pas une autre?

Merci

ViPHP
fab
ViPHP | 2657 Messages

14 oct. 2009, 14:25

Dans ce cas récupère avant la dernière commande en date, si tu n'as pas de champs date tu peux utiliser la champ ID qui normalement doit être en auto_increment donc le dernier sera le bon :)
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphant du PHP | 91 Messages

14 oct. 2009, 14:47

Dans ce cas récupère avant la dernière commande en date, si tu n'as pas de champs date tu peux utiliser la champ ID qui normalement doit être en auto_increment donc le dernier sera le bon :)
Ca serait pas ce type de script a insérer après SELECT .... FROM..... WHERE par hasard?
ORDER BY date DESC LIMIT 1;

ViPHP
fab
ViPHP | 2657 Messages

14 oct. 2009, 14:54

Dans ton cas présent non, si tu rajoutes ça à ta requête, tu vas avoir uniquement un enregistrement en sortie donc tu aurais un produit appartenant à la dernière commande!
Donc faut que tu fasses une requête juste avant pour récupérer l'identifiant de ta commande et là c'est le principe que tu as dis :

Code : Tout sélectionner

SELECT * FROM taTable ORDER by date DESC LIMIT 1;
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphant du PHP | 91 Messages

15 oct. 2009, 11:25

Dans ton cas présent non, si tu rajoutes ça à ta requête, tu vas avoir uniquement un enregistrement en sortie donc tu aurais un produit appartenant à la dernière commande!
Donc faut que tu fasses une requête juste avant pour récupérer l'identifiant de ta commande et là c'est le principe que tu as dis :

Code : Tout sélectionner

SELECT * FROM taTable ORDER by date DESC LIMIT 1;
Effectivement, ca m'a afficher toutes les autres commandes

ViPHP
fab
ViPHP | 2657 Messages

15 oct. 2009, 12:02

Euh tu as fais quoi comme requete car avec un limit 1, je vois pas comment ça a pu t'afficher plusieurs résultats...

C'est peut être moi, mais j'apprécie pas le ton de ton dernier message, ici on aide si ça te va pas comme ça cherche tout seul. Peut être que j'ai mal interprété j'espère...
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphant du PHP | 91 Messages

15 oct. 2009, 12:32

Euh tu as fais quoi comme requete car avec un limit 1, je vois pas comment ça a pu t'afficher plusieurs résultats...

C'est peut être moi, mais j'apprécie pas le ton de ton dernier message, ici on aide si ça te va pas comme ça cherche tout seul. Peut être que j'ai mal interprété j'espère...
wow wow wow. Quel ton?

J'ai seulement confirmer ce que tu disais a savoir:

".... tu vas avoir uniquement un enregistrement en sortie donc tu aurais un produit appartenant à la dernière commande!"

Ou est le mépris (interprétation de mépris venant de ma part) la dedans? Je n'ai émis aucune pensée négative contre toi. J'ai constaté par moi-meme ce que tu disais et je t'ai donner raison en plus. Rien d'autres.

Mais comme maintenant ta petite phrase "mais j'apprécie pas le ton de ton dernier message, ici on aide si ça te va pas comme ça cherche tout seul." à générer un état d'esprit négative chez moi. (mécanisme psychologique d' introduction-réaction) Alors qu'en réalité j'ai appuyer ce que tu disais a 100%, j'allais totalement dans ton sens, aucune critique, aucune pensée négative et que même une fois réussit, j'allais te dire merci par principe. Je clos cette discussion avant que cet état d'esprit négatif chez moi dégénère.

@kershin: Merci pour ta réponse, elle m'a vraiment aidée.

Quant à toi Fab: Good bye et t'attend pas a des remerciements de ma part pour ce que tu viens d'écrire

ViPHP
fab
ViPHP | 2657 Messages

15 oct. 2009, 13:14

Toutes mes excuses alors, j'ai mal interprété :) Merci en tout cas d'avoir le pris le temps de répondre pour clarifier la situation
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }