IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

MYSQL addition et affichage [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 30
    Par défaut MYSQL addition et affichage
    Bonjour,

    Je dispose d'une base MYSQL avec dans une partie une table qui recense un panier de commande. Dans ce panier il y a une colonne prix. Je souhaiterais en gros créer une requête faisant en sorte que tout ce qui est dans la colonne panier puisse être additionné pour donner un prix total à affiché au client mais je ne sais comment faire pouvez-vous m'aider ?

    Merci bien.

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Par défaut
    Bonjour,

    si tu veut une requête qui affiche JUSTE la somme du panier un simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUM(maCol) FROM maTable where idCommande = idCommande;
    par contre si tu veut afficher le panier de la commande puis le somme avec la même requête cela n'est pas possible car tu demande deux informations différente à la même requête,

    donc soit tu fait deux requêtes soit le calcul de la somme se fera coté affichage donc dans un langage de programmation autre.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 127
    Par défaut
    Bonjour,

    Pour compléter ce qu'a dit Exia,, tu peux faire en une seule requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT
       article AS Designation ,prix AS Montant
       FROM commandes c
       WHERE c.id_commande = 150
     UNION 
     SELECT 'TOTAL' AS Designation, SUM(prix) AS Montant
     FROM commandes c
     WHERE c.id_commande = 150;
    ça donne ce résultat :
    Designation Montant
    ART_001 10,5
    ART_002 8,7
    ART_003 5
    ART_004 15,3
    TOTAL 39,5

    A adapter bien sûr

    Cordialement

  4. #4
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 30
    Par défaut
    Bonjour,

    Je n'y arrive pas trop, j'ai fais cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    include("mysql_connect.php");
    $sqlselect = mysql_query("SUM(prix) FROM panier");
    $echselect = mysql_fetch_array($sqlselect);
    ?>
    <tr>
    <td>TOTAL HT</td><td colspan="2" align="right"><?php echo $echselect['prix'];?>test </td>
    </tr>

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 127
    Par défaut
    Bonjour,

    ça ne peut pas marcher parce que 'SUM(prix)' ne s’appelle pas 'prix'.

    Le mieux est de faire un alias comme je t'ai donné en exemple (MONTANT)
    Et là ta colonne s'appellera 'MONTANT'.

    Cordialement

  6. #6
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 30
    Par défaut
    Salut,

    Désolé je ne comprend pas, cela ne fonctionne pas et il y a sans doute une grosse bourde, voici ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    include("mysql_connect.php");
    $test = mysql_query("SELECT
      prix AS Montant
      FROM panier c
     UNION 
     SELECT 'TOTAL' AS SUM(prix) AS Montant
     FROM panier c");
    ?>
    <tr>
    <td>TOTAL HT</td><td colspan="2" align="right"><?php echo $test; ?> </td>
    </tr>
    Cela ne donne rien mais j'ai aussi fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    include("mysql_connect.php");
    mysql_query("SELECT
      prix AS Montant
      FROM panier c
     UNION 
     SELECT 'TOTAL' AS SUM(prix) AS Montant
     FROM panier c");
    ?>
    <tr>
    <td>TOTAL HT</td><td colspan="2" align="right"><?php echo $Montant; ?> </td>
    </tr>
    Mais cela ne fonctionne pas non plus. Je ne sais pas ce qui pose problème. En gros moi je veux juste faire le total de tout les montants de la colonne prix (en addition) de la table panier sans distinction de commande donc le total complet.

    Merci encore beaucoup. ^^ Je suis un peu énervant des fois. ^^

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 127
    Par défaut
    Bonjour guizzmo200,

    Connais tu suffisamment le php (et même le SQL) ? ça ne vaudrait pas le coup que tu aille sur des sites ou il y a des cours et tutoriel pour apprendre PHP pour démarrer ?
    comme par exemple celui-ci sur developpez.net qui est excellent :


    Ceci mis à part, si tu n'a besoin que du cumul, tu n'a pas besoin de faire l'union,
    par contre tu as recopié mon code de travers :
    Ceci est FAUX :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT 'TOTAL' AS SUM(prix) AS Montant FROM Panier
    La bonne écriture est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUM(prix) AS Montant FROM Panier
    Et pour récupérer la valeur, ça sera (si $echselect contient le fetch)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td>TOTAL HT</td><td colspan="2" align="right"><?php echo $echselect['Montant']; ?> </td>
    Cordialement

  8. #8
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 30
    Par défaut
    Bonjour,

    Merci beaucoup, cela commence à fonctionner un peu, maintenant il m'affiche quelque chose, 'Resource id #9'.
    Cela peut venir de où ?

    Mon code actuel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    include("mysql_connect.php");
    $test = mysql_query("SELECT SUM(prix) AS Montant FROM panier");
    ?>
    <tr>
    <td>TOTAL HT</td><td colspan="2" align="right"><?php echo $test; ?> </td>
    </tr>
    Je vais aussi aller étudier les cours un petit peu, mais en faite étrangement, je maitrise un peu php (je viens de terminer un espace client) mais là, je bloque. OO Sur des petites choses parfois simple.

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 127
    Par défaut
    RE- bonjour Guizzmo,

    Tu dis maitriser le php, mais ton code semble dire le contraire, à moins que ce soit par distraction?

    Tu tente d'afficher le retour de mysql_query qui est juste le retour de l'appel SQL, ça ne contient pas le résultat. Ce n'est que quand tu appellera le fetch que tu va récupérer une "Row".
    Il te manque donc une ligne (que tu avait mise au début d'ailleurs) qui appelle 'mysql_fetch_array'
    Ensuite, tu n'as qu'à recopier la ligne que je t'ai passée (attention, la variable que je suppose contenir le résultat de mysql_query() est ici '$echselect', pas '$test'.
    celle là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td>TOTAL HT</td><td colspan="2" align="right"><?php echo $echselect['Montant']; ?> </td>
    C'est assez clair ?

    Cordialement

  10. #10
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 30
    Par défaut
    Salut,

    Merci de ton aide, le problème est que là plus rien ne s'affiche, une case vide en gros dans mon tableau, voici pourtant mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    include("mysql_connect.php");
    $sqlpanier = mysql_query("SELECT SUM(prix) AS Montant FROM panier");
    while ($echselect = mysql_fetch_array($sqlpanier) )
    ?>
    <tr>
    <td>TOTAL HT</td><td colspan="2" align="right"><?php echo $echselect['Montant']; ?> </td>
    </tr>

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 127
    Par défaut
    bonjour Guizzmo (ou alex ?)

    tu y es presques.

    ça n'afiche rien parce que ton while ne met pas le code qui suit entre accolade, donc quand tu arrive à la ligne où tu affiche, la boucle while est sur un record vide.

    Comme ici il n'y a qu"un resultat (c'est un SUM) tu n'as qu'à enlver le "while" comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    include("mysql_connect.php");
    $sqlpanier = mysql_query("SELECT SUM(prix) AS Montant FROM panier");
    $echselect = mysql_fetch_array($sqlpanier)
    ?>
    <tr>
    <td>TOTAL HT</td><td colspan="2" align="right"><?php echo $echselect['Montant']; ?> </td>
    </tr>
    Cordialement

  12. #12
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 30
    Par défaut
    Coucou,

    Merci beaucoup ça marche. Encore merci de ton aide. :p

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Vxi3] Requête sur Mysql problème d'affichage
    Par PAYASS59 dans le forum Webi
    Réponses: 10
    Dernier message: 29/09/2010, 18h00
  2. [MySQL] Optimisation requête, affichage lent
    Par Yann39 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 10/10/2008, 11h23
  3. [MySQL] probleme avec mysql et php (affichage donnees)
    Par rane dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 18/10/2007, 15h26
  4. [PHP/MySQL] Solution d'affichage image et vidéo
    Par cnguyen dans le forum Administration
    Réponses: 6
    Dernier message: 16/08/2006, 13h41
  5. Réponses: 8
    Dernier message: 28/03/2006, 16h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo