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 :

Problème avec requête et calcul [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    à mes temps perdus
    Inscrit en
    Février 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : à mes temps perdus
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 66
    Par défaut Problème avec requête et calcul
    Bonjour à tous,
    je viens vers vous pour solliciter votre aide et merci par avance à ceux qui vont m'aider
    Voila mon problème :
    je désire calculer la somme totale de chaque commandes par client, dans mes enregistrements j'ai à chaque fois le client et le montant de sa commande.
    j'ai fait ce bout de code que je teste ( et je suis pas sur qu'il soit propre )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    <?php
    ///// affichage des commandes
        echo '<table bgcolor="#FFFFFF" border="1px" width="98%" height="100%" cellpadding="0" colspaccing="0">'."\n";
     
            echo '<tr>';
            echo '<td bgcolor="#808080" class="colonnex"><b>&nbsp;&nbsp;Client&nbsp;&nbsp;</b></td>';
            echo '<td bgcolor="#808080" class="colonnex"><b>&nbsp;&nbsp;Valo&nbsp;&nbsp;</b></td>';
            echo '</tr>'."\n";
     
     
        $sql = "SELECT plan_client,valo FROM planning_scd GROUP BY plan_client ORDER BY valo DESC";
        $req = mysql_query($sql) or die ($sql.' '.mysql_error());
     
     
        while ($data = mysql_fetch_array($req)) {
     
     
     
        $sql2 = 'SELECT SUM(valo) AS total FROM planning_scd WHERE plan_client="'.$data['plan_client'].'" ';
        $req2 = mysql_query($sql2) or die('Erreur : '.mysql_error());
        $data2 = mysql_fetch_array($req2);
        $somme = $data2['total'];
     
     
     
            echo'<tr>';
            echo '<td class="colonnex"><b>&nbsp;&nbsp;', htmlentities(trim($data['plan_client'])) ,'&nbsp;&nbsp;</b></td>';
            echo '<td class="colonnex"><b>&nbsp;&nbsp;'.$somme.'&nbsp;&nbsp;&euro;</b></td>';
            echo'</tr>';
     
     
                                                  }
            echo'</table>';
     
     
     
    ?>
    Le problème que je rencontre ben c'est de ne pas trouver comment je peux afficher le tableau en ordre croissant par rapport à la somme totale ( somme additionnée de chaque commande par client )


  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2013
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

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

    En fait, tu peux tout passer dans la même requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql2 = 'SELECT plan_client, SUM(valo) AS total FROM planning_scd GROUP BY plan_client ORDER BY total';

  3. #3
    Membre confirmé
    Homme Profil pro
    à mes temps perdus
    Inscrit en
    Février 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : à mes temps perdus
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 66
    Par défaut
    Super
    J'aurai dû y penser suis stupide

    donc au final ça donne cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    <?php
    ///// affichage des commandes
        echo '<table bgcolor="#FFFFFF" border="1px" width="98%" height="100%" cellpadding="0" colspaccing="0">'."\n";
     
            echo '<tr>';
            echo '<td bgcolor="#808080" class="colonnex"><b>&nbsp;&nbsp;Client&nbsp;&nbsp;</b></td>';
            echo '<td bgcolor="#808080" class="colonnex"><b>&nbsp;&nbsp;Valo&nbsp;&nbsp;</b></td>';
            echo '</tr>'."\n";
     
     
        $sql = 'SELECT plan_client, SUM(valo) AS total FROM planning_scd GROUP BY plan_client ORDER BY total DESC';
        $req = mysql_query($sql) or die ($sql.' '.mysql_error());
     
     
        while ($data = mysql_fetch_array($req)) {
     
        $somme = $data['total'];
     
     
     
            echo'<tr>';
            echo '<td class="colonnex"><b>&nbsp;&nbsp;', htmlentities(trim($data['plan_client'])) ,'&nbsp;&nbsp;</b></td>';
            echo '<td class="colonnex"><b>&nbsp;&nbsp;'.$somme.'&nbsp;&nbsp;&euro;</b></td>';
            echo'</tr>';
     
     
                                                  }
            echo'</table>';
     
     
     
    ?>

    Merci

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2013
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 45
    Par défaut
    N'est stupide que la stupidité

    Mais c'est mieux oui. Un truc que tu peux faire aussi éventuellement, c'est de concaténer une chaine et l'afficher à la fin, plutôt que de tout afficher au fur et à mesure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
    <?php
    ///// affichage des commandes
        $table = '<table bgcolor="#FFFFFF" border="1px" width="98%" height="100%" cellpadding="0" colspaccing="0">'."\n";
     
            $table .= '<tr>';
     
            [.....]
     
            $table .= '</tr>';
     
            $table .= '</table>';
     
     echo $table;
     
    ?>
    Si tu peux aussi rendre indépendant l'html du php c'est encore mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <table bgcolor="#FFFFFF" border="1px" width="98%" height="100%" cellpadding="0" colspaccing="0">
    [....]
     
    <?php
       $tr = '';
        $sql = 'SELECT plan_client, SUM(valo) AS total FROM planning_scd GROUP BY plan_client ORDER BY total DESC';
        $req = mysql_query($sql) or die ($sql.' '.mysql_error());
     
     
        while ($data = mysql_fetch_array($req)) {
     
        $somme = $data['total'];
     
             $tr .= '<tr>';
            $tr .= '<td class="colonnex"><b>&nbsp;&nbsp;', htmlentities(trim($data['plan_client'])) ,'&nbsp;&nbsp;</b></td>';
            $tr .= '<td class="colonnex"><b>&nbsp;&nbsp;'.$somme.'&nbsp;&nbsp;&euro;</b></td>';
            $tr .= '</tr>';
        }
    echo $tr;
    ?>
    </table>

  5. #5
    Membre confirmé
    Homme Profil pro
    à mes temps perdus
    Inscrit en
    Février 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : à mes temps perdus
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 66
    Par défaut
    c'est pas plus mal en effet ... puis ça me permet de travailler d'une façon différente ( le fait de rendre indépendant le html ) je ne connaissais pas du tout
    une fois mon petit projet en place je reprendrais tout de cette façon
    Pour le moment je reste simpliste car j'ai pas mal de taf encore dessus !
    La pour cette portion de code le but était d'afficher le top 5 des clients ( au niveau des ventes )
    et j'ai donc fini ma requête avec un DESC LIMIT 5
    En tout cas merci une fois de plus pour les infos

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

Discussions similaires

  1. Problème avec requête calcul des âges
    Par BP EST dans le forum Requêtes et SQL.
    Réponses: 19
    Dernier message: 02/08/2012, 18h29
  2. [VxiR2] Problème avec résultat de calcul sur 2 requêtes liées.
    Par mouchou77 dans le forum Deski
    Réponses: 8
    Dernier message: 27/09/2010, 17h37
  3. Problème avec requête ajout
    Par teffal dans le forum Access
    Réponses: 3
    Dernier message: 29/04/2006, 16h41
  4. Problème avec requête ajout
    Par mitnick32 dans le forum Access
    Réponses: 1
    Dernier message: 02/02/2006, 18h02
  5. [VB6] Problème avec requête Update
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/02/2006, 03h40

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