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

Langage PHP Discussion :

Récupérer le total d'une somme [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Récupérer le total d'une somme
    Bonjour tout le monde,

    Je fais la somme d'une colonne par rapport au numéro de l'ID et du matricule de l'étudiant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $sql_somme_rubrique = "SELECT SUM(cote) as somme FROM `cotations` WHERE Matricule= '". $_POST['matricule_et'] ."' AND LEFT(Present_ou_pas,1) = ". $tab_reference[0];
     
     
    $query_somme_rubrique = mysql_query($sql_somme_rubrique);
    J'obtiens par exemple ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT SUM(cote) as somme FROM `cotations` WHERE Matricule= '06581' AND LEFT(Present_ou_pas,1) = 2
    Ce qui me donne par exemple :

    SUM(cote)
    5
    Je me demandais comment je pouvais exploiter le 5 ?

    J'ai essayé comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE totaux_rubriques SET Total_rubrique = ".somme." WHERE Matricule = ". $_POST['matricule_et'] . " AND ID_rubrique = ".$tab_reference[0]."
    mais sans succès.

    Auriez-vous une idée ?

    Merci d'avance.

    beegees

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut faire un "fetch" de la requete pour en recuperer les résultats.
    Revoit la documentation :
    http://php.net/manual/fr/function.mysql-query.php
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Il faut faire un "fetch" de la requete pour en recuperer les résultats.
    Revoit la documentation :
    http://php.net/manual/fr/function.mysql-query.php
    Salut,

    Merci pour ta réponse.

    J'ai testé avec le mysql_fetch_array :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql_somme_rubrique = "SELECT SUM(cote) as somme FROM `cotations` WHERE Matricule= '". $_POST['matricule_et'] ."' AND LEFT(Present_ou_pas,1) = ". $tab_reference[0];
    $query_somme_rubrique = mysql_query($sql_somme_rubrique);
    $result = mysql_fetch_array($query_somme_rubrique);
    et je l'utilise ensuite dans ma chaine sql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql_update_total = "UPDATE totaux_rubriques SET Total_rubrique = ".$result['somme']." WHERE Matricule = ". $_POST['matricule_et'] . " AND ID_rubrique = ".$tab_reference[0]."";
    Sans succès, voici ce que j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO totaux_rubriques(Matricule, ID_rubrique, Total_rubrique) VALUES ('06581','2',)
    On peut voir que le 3e paramètre est vide :

    Qu'en penses-tu ?

    Encore merci.

    beegees

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je ne vois pas le lien entre l'update que tu fais et l'insert que tu montres.
    As-tu controlé ce que contenait $result ?

    Si les deux requetes se font dans la foulée, tu peux aussi placer directement ta requete SELECT dans la requete UPDATE.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Je ne vois pas le lien entre l'update que tu fais et l'insert que tu montres.
    As-tu controlé ce que contenait $result ?

    Si les deux requetes se font dans la foulée, tu peux aussi placer directement ta requete SELECT dans la requete UPDATE.
    Re,

    Merci pour ta réponse.

    L'update met à jour au cas où l'enregistrement existe déjà et dans le cas contraire, c'est l'INSERT INTO qui prend la main.

    Je ne comprends pas bien ta réponse.

    Voici mon code :

    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
    $sql_somme_rubrique = "SELECT SUM(cote) as somme FROM `cotations` WHERE Matricule= '". $_POST['matricule_et'] ."' AND LEFT(Present_ou_pas,1) = ". $tab_reference[0];
    	//echo $sql_somme_rubrique;
    	$query_somme_rubrique = mysql_query($sql_somme_rubrique);
    	$result = mysql_fetch_array($query_somme_rubrique);
     
    	//echo $result['cote'];
     
    	$sql_additionner = "SELECT * FROM totaux_rubriques WHERE Matricule = '".$_POST['matricule_et']."'AND ID_rubrique = " .$tab_reference[0];
    	$query_additionner = mysql_query($sql_additionner);
    	$result = mysql_fetch_array($query_additionner);
     
    	$nombre = mysql_num_rows($query_additionner);
     
    	// si il existe déjà dans la bd ==> UPDATE
    	if($nombre > 0)
    	{
    		$sql_update_total = "UPDATE totaux_rubriques SET Total_rubrique = ".$result['somme']." WHERE Matricule = ". $_POST['matricule_et'] . " AND ID_rubrique = ".$tab_reference[0]."";
    		echo "<Update Total> ". $sql_update_total;
    		$query_sql_update_total = mysql_query($sql_update_total);
    	}
    	// autrement INSERT INTO
    	else
    	{
    		$sql_insert_total = "INSERT INTO totaux_rubriques(Matricule, ID_rubrique, Total_rubrique) VALUES ('".$_POST['matricule_et']."','".$tab_reference[0]."',".$result['somme'].")";
    		echo "<INSERT INTO Total> ". $sql_insert_total;
    		$query_sql_insert_total = mysql_query($sql_insert_total);
    	}
    Encore merci pour ton aide.

    beegees

  6. #6
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Je viens de voir mon erreur sabotage :

    $result deux fois, le second écrasait le premier.

    Merci pour ton aide.

    beegees

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

Discussions similaires

  1. [AC-2007] Récupérer le total d'une colonne d'une liste restreinte
    Par spookyz dans le forum IHM
    Réponses: 2
    Dernier message: 14/08/2014, 04h33
  2. Récupérer résultat d'une somme
    Par alex2746 dans le forum JDBC
    Réponses: 1
    Dernier message: 25/02/2010, 23h52
  3. [XL-2003] Faire une somme avec la fonction sous total
    Par Gwladys dans le forum Excel
    Réponses: 2
    Dernier message: 09/04/2009, 17h26
  4. Réponses: 5
    Dernier message: 15/09/2008, 15h06
  5. récupérer la taille totale d'une image avant chargement
    Par sorenson dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/06/2006, 14h50

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