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 :

SELECT SUM inopérant [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 482
    Points : 193
    Points
    193
    Par défaut SELECT SUM inopérant
    Bonsoir,

    Je souhaite totaliser le champ hits de la table Pays pour lesquels le champ NAME est identique dans une variable intitulée $Total.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    	$req = 'SELECT DISTINCT NAME FROM `Pays`';
    	$result =mysql_query($req,$link) or die ('Erreur :'.mysql_errno().mysql_error());
    	$rows = mysql_num_rows($result);
     
     
    	while ($rows=mysql_fetch_array($result))
    		{
    			$NAME = $rows['NAME'];
    			echo $NAME."<BR>";
    			$req0 = "SELECT NAME, sum('hits') FROM `Pays` WHERE NAME='$NAME'";
    			$Total =mysql_query($req0,$link) or die ('Erreur :'.mysql_errno().mysql_error());
     
    			echo "<BR>".$Total;
    }
    Ceci étant, l'affichage de la variable $Total indique une erreur.

    Auriez-vous vu mon erreur ?
    Merci

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 222
    Points : 28 208
    Points
    28 208
    Par défaut
    peut-être manque-t-il un GROUP BY dans la requête ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    ce n'est pas étonnant, ton code n'a aucun sens...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	$rows = mysql_num_rows($result);
     
    	while ($rows=mysql_fetch_array($result))
    Pas très cohérent..... Es'tu sûr de savoir quoi faire de ta variable $rows ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    		$NAME = $rows['NAME'];
    			//....
    			$req0 = "SELECT NAME, .................... ";
    Pourquoi redemander NAME dans la requête... alors que tu le connais déjà ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	$Total = mysql_query($req0,$link) or die ('Erreur :'.mysql_errno().mysql_error());
     
    	echo "<BR>".$Total;
    Il ne manquerait pas quelques lignes de code ?
    que crois-tu afficher avec $Total ?

    Il semble pourtant que tu aies connaissance de mysql_fetch_array() et de la façon d'afficher les résultats d'une requête ?
    Dernière modification par Invité ; 06/03/2015 à 22h54.

  4. #4
    Membre habitué
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 482
    Points : 193
    Points
    193
    Par défaut
    Bonjour,

    Merci JREAUX62 pour ton intervention,
    C'est vrai que je n'ai pas de formation en PHP-MySQL. Je joue donc à l'apprenti sorcier en bidouillant des lignes de codes que j'ai vues en expérimentant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    		$req = 'SELECT DISTINCT NAME FROM `Pays`';
    	$result =mysql_query($req,$link) or die ('Erreur :'.mysql_errno().mysql_error());
    	$rows = mysql_num_rows($result); 
     
    	while ($rows=mysql_fetch_array($result))
    		{
    			$NAME = $rows['NAME'];
    			echo $NAME."<BR>";
    			$req0 = "SELECT NAME, sum('hits') FROM `Pays` WHERE NAME='$NAME'";
    			$Total =mysql_query($req0,$link) or die ('Erreur :'.mysql_errno().mysql_error());
     
    			echo "<BR>".$Total;
    }
    Le champ 'NAME' de la table `Pays` contenant plusieurs fois la même occurrence, je désire additionner la valeur du champ 'hits' lorsque ce champ 'NAME' est le même puis l'afficher.

  5. #5
    Invité
    Invité(e)
    Par défaut
    LOL !
    Je constate que tu n'as pas changé UNE ligne de ton code !

    J'espère qu'avec des noms de variables plus explicites, tu comprendras mieux.

    Ce qui ne te dispense PAS d'APPRENDRE et lire des tutos.
    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
    <?php
    	$name_query = "SELECT DISTINCT NAME FROM `Pays`";
    	$name_result = mysql_query($name_query, $link) or die ('Erreur :'.mysql_errno().mysql_error());
     
    	while ( $name_row = mysql_fetch_array($name_result) )
    	{
    			$pays_Name = $name_row['NAME'];
     
    			$sum_query = "SELECT SUM('hits') AS hits_total FROM `Pays` WHERE NAME='$NAME'";
    			$sum_result = mysql_query($sum_query, $link) or die ('Erreur :'.mysql_errno().mysql_error());	
     
    			$sum_row = mysql_fetch_array($sum_result); // on n'a qu'un seul résultat ici
    			$hits_Total = $sum_row['hits_total'];
     
    			echo htmlspecialchars($pays_Name) . ' : ' . $hits_Total . ' hits<br />';
    	}

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    Le champ 'NAME' de la table `Pays` contenant plusieurs fois la même occurrence, je désire additionner la valeur du champ 'hits' lorsque ce champ 'NAME' est le même puis l'afficher.
    il faut grouper(avec group by) par pays chaque ligne retournée par SELECT et faire la somme pour chacun des pays.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     <?php
     
    	$sum_query = "SELECT `NAME`,SUM(hits) AS hits_total FROM `Pays` GROUP BY `NAME`";
    	$sum_result = mysql_query($sum_query, $link) or die ('Erreur :'.mysql_errno().mysql_error());	
    	while ($sum_row = mysql_fetch_array($sum_result)){
                echo htmlspecialchars($sum_row['NAME']) . ' : ' . $sum_row['hits_total'] . ' hits<br />';
    	}
     
     
    ?>

  7. #7
    Membre habitué
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 482
    Points : 193
    Points
    193
    Par défaut
    La solution proposée par armel18 fonctionne parfaitement.
    Je remercie toutes les personnes qui se sont penchées sur mon problème et promets de prendre davantage de temps pour regarder des tutos.

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

Discussions similaires

  1. [MySQL] SELECT SUM sur 96 champs
    Par Tee shot dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 15/02/2008, 21h50
  2. SELECT SUM multi-colone
    Par Momodedf dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/10/2007, 11h24
  3. Select if ( select sum ()) arrondis?
    Par cain.patres dans le forum Requêtes
    Réponses: 3
    Dernier message: 12/06/2007, 16h01
  4. probleme requete SELECT SUM
    Par Sophie2097 dans le forum Requêtes
    Réponses: 1
    Dernier message: 03/11/2006, 15h14
  5. Utiliser le résultat de SELECT Sum dans If
    Par samlepiratepaddy dans le forum Requêtes et SQL.
    Réponses: 33
    Dernier message: 15/11/2005, 08h38

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