Requête Somme des prix...
Résolu
reaverlost
Messages postés
168
Statut
Membre
-
xMiLeY Messages postés 73 Statut Membre -
xMiLeY Messages postés 73 Statut Membre -
Bonjour,
Je suis sur un site marchand, et je souhaiterais, lorsque l'on ajoute des produits dans le panier, qu'il y ait le prix total de tous ces produits. Voici mes tables :
table produit : id (clé primaire), nomproduit, description, réf, prix;
table commande : id (clé primaire), pseudo, nomproduit, ref (clé étrangère);
J'ai déjà tenté 2 requête SQL, qui semble ne pas vouloir fonctionner. Les voici :
Et celle-ci :
Il n'y a aucune erreur SQL. Pouvez-vous m'indiquer où st le problème? Je ne vois vraiment pas...
Merci à vous.
Je suis sur un site marchand, et je souhaiterais, lorsque l'on ajoute des produits dans le panier, qu'il y ait le prix total de tous ces produits. Voici mes tables :
table produit : id (clé primaire), nomproduit, description, réf, prix;
table commande : id (clé primaire), pseudo, nomproduit, ref (clé étrangère);
J'ai déjà tenté 2 requête SQL, qui semble ne pas vouloir fonctionner. Les voici :
$sqlsum = "SELECT SUM(produit.prix)
FROM produit, commande
WHERE produit.ref = commande.ref
AND pseudo = '".$_SESSION['pseudo']."'";
$reqsum = mysql_query ($sqlsum) or die ("Erreur de requete");
$nbr = mysql_num_rows ($reqsum);
while ($tabsum = mysql_fetch_array ($reqsum));
{
for ($i = 0; $i <= $nbr; $i++)
{
$prixtotal = $prixtotal + $tabsum['prix'][$i];
}
}
Et celle-ci :
$sqlsum = "SELECT produit.prix
FROM produit, commande
WHERE produit.ref = commande.ref
AND produit.prix IN (SELECT SUM(prix) FROM produit WHERE pseudo = '".$_SESSION['pseudo']."'";
$reqsum = mysql_query ($sqlsum) or die ("Erreur de requete");
$nbr = mysql_num_rows ($reqsum);
while ($tabsum = mysql_fetch_array ($reqsum));
{
for ($i = 0; $i <= $nbr; $i++)
{
$prixtotal = $prixtotal + $tabsum['prix'][$i];
}
}
Il n'y a aucune erreur SQL. Pouvez-vous m'indiquer où st le problème? Je ne vois vraiment pas...
Merci à vous.
A voir également:
- Requête Somme des prix...
- Prix - Guide
- Somme si couleur - Guide
- Formule somme excel colonne - Guide
- Historique prix amazon - Guide
- Prix d'un appel local - Forum telephonie fixe
11 réponses
Salut,
Oui, mais le résultat est le même, ça m'affiche tout le temps :
- Prix total = 0;
Je pense que l'erreur vient de ma requête, mais je ne vois vraiment pas où...
Oui, mais le résultat est le même, ça m'affiche tout le temps :
- Prix total = 0;
Je pense que l'erreur vient de ma requête, mais je ne vois vraiment pas où...
Perso j'aurais fais quelque chose dans ce genre pour la requête :
SELECT Sum(a.prix) AS Prix_Total_Panier
FROM produit a
WHERE a.nomproduit IN (SELECT b.nomproduit FROM commande b WHERE pseudo = '".$_SESSION['pseudo']."'
CAD que je demanderai à la requête de calculer le prix total SI le nom du produit associé au prix dans la table Produit existe bien dans la table Commande, là où le pseudo entré dans la commande correspond au pseudo de l'utilisateur...
Mais après je ne suis pas sûre...
SELECT Sum(a.prix) AS Prix_Total_Panier
FROM produit a
WHERE a.nomproduit IN (SELECT b.nomproduit FROM commande b WHERE pseudo = '".$_SESSION['pseudo']."'
CAD que je demanderai à la requête de calculer le prix total SI le nom du produit associé au prix dans la table Produit existe bien dans la table Commande, là où le pseudo entré dans la commande correspond au pseudo de l'utilisateur...
Mais après je ne suis pas sûre...
lys44 : Merci pour ta réponse !
Mais malheureusement le résultat est exactement le même, le prix total ne veut pas lâcher son 0...
Mais malheureusement le résultat est exactement le même, le prix total ne veut pas lâcher son 0...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je ne sais pas si cela changera quelque chose mais essaye peut être avec un EXISTS ...
On ne sait jamais... =/
On ne sait jamais... =/
Tu peux toujours faire une requête d'ajout tu recupère le dernier id créer ainsi que la référence puisque c'est la clé étrangère et tu fais une deuxième requête d'ajout.
Je ne comprend pas bien dans tes tables comment on peut savoir que tel produit appartient à telle commande???
Imaginons le produit ac la référence 4445 et le produit avec la référence 4446 ds ta table produit font parti de la même commande?? Quel champ est commun aux 2 dans ta table commande à part le "pseudo"?
Imaginons le produit ac la référence 4445 et le produit avec la référence 4446 ds ta table produit font parti de la même commande?? Quel champ est commun aux 2 dans ta table commande à part le "pseudo"?
lys44 et Thewmat : Je test vos solution et je vous dis :)
xMiLeY : Le pseudo n'apparaît pas dans la table produit. Le champ commun aux 2 tables est "ref" (référence du produit) :)
xMiLeY : Le pseudo n'apparaît pas dans la table produit. Le champ commun aux 2 tables est "ref" (référence du produit) :)
xMiLeY il y a un numéro de commande et il va y avoir une ou plusieurs ligne dans la table commande en fonction de si 1 ou plusieurs produit(s) sont sélectionnés. donc 1 ou plusieurs ref(puisque c'est la clé étrangère)
lys44 : Le "EXISTS" donnait le même résultat. Mais ta première solution était bonne. C'est moi qui m'étais gouré comme un pieu juste après :honte:
Pour ceux et celles que ça intéresseraient :
Merci à vous tous :)
Pour ceux et celles que ça intéresseraient :
$sqlsum = "SELECT SUM(prix) AS total
FROM produit
WHERE ref IN (SELECT ref FROM commande WHERE pseudo = '".$_SESSION['pseudo']."')";
$reqsum = mysql_query ($sqlsum) or die ("Erreur de requete");
while ($tabsum = mysql_fetch_array ($reqsum))
{
$prixtotal = $prixtotal + $tabsum['total'];
echo $prixtotal;
}
Merci à vous tous :)