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

 MySQL Discussion :

Addition valeur mysql_fetch_array


Sujet :

MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 60
    Points : 19
    Points
    19
    Par défaut Addition valeur mysql_fetch_array
    Bonjour,

    voila je voudrai faire un petit test tout bête...

    j'ai une boite au lettre avec une taille en octet...

    puis des messages avec chaque foi différentes taille

    je voudrai pouvoir connaître l'espace utilisé et l'espace réstant sur ma table...

    j'arrive à récuperer toutes les valeurs avec un mysql_fetch_array mais ensuite je sais pas comment compter ou plutôt additionner ses valeurs...

    je n'ai pas trouvé la doc précise pour faire ceci...

    Quelqu'un pourait m'aider ? Merci d'avance

    P.S: 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
     
    <?
    include("config.php");
    $req_TailleMaxBoite = "SELECT TailleMaxBoite FROM utilisateur WHERE IdUtilisateur = IdUtilisateur";
    $don_TailleMaxBoite = mysql_query($req_TailleMaxBoite) or die (mysql_error().'<br>'.$req_TailleMaxBoite);
    while ($row = mysql_fetch_array($don_TailleMaxBoite)) {
    printf("Taille Max de la boite : %s", $row["TailleMaxBoite"]);
    print "<br>";
    }
    echo "<br>";
    $req_TailleMsg = "SELECT Taille FROM infomessage WHERE IdUtilisateur = IdUtilisateur";
    $don_TailleMsg = mysql_query($req_TailleMsg) or die (mysql_error().'<br>'.$req_TailleMsg);
    while ($row = mysql_fetch_array($don_TailleMsg, MYSQL_ASSOC)) {
    	printf("Tailles des messages : %s", $row["Taille"]);
    	print "<br>";
    	}
    ?>

  2. #2
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Déjà, tu as une erreur dans tes requêtes: le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE IdUtilisateur = IdUtilisateur
    ne sert strictement à rien !

    Pour faire la somme, il suffit d'utiliser la fonction SUM de MySQL et le GROUP BY approprié:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT IdUtilisateur, SUM(Taille) AS TailleTotale
    FROM infomessage 
    GROUP BY IdUtilisateur
    Maintenant, on va afficher à la fois la taille utilisée et la taille maximum autorisée en une seule requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT 
      u.IdUtilisateur,
      SUM(m.Taille) AS TailleTotale,
      u.TailleMaxBoite AS TailleMax
     
    FROM utilisateur u
    LEFT OUTER JOIN infomessage m
    ON (u.IdUtilisateur = m.IdUtilisateur)
     
    GROUP BY u.IdUtilisateur
    Le LEFT OUTER JOIN te renverra aussi les utilisateurs qui n'ont pas posté de messages (TailleTotale=0).

    Enfin, pour afficher exclusivement les utilisateurs dont la taille totale excède la taille maxi autoriseé, il suffit de rajouter à la fin de la requête précédente cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HAVING TailleTotale > TailleMax
    (dans ce cas, tu peux aussi remplacer le LEFT OUTER JOIN par un INNER JOIN)

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 60
    Points : 19
    Points
    19
    Par défaut
    Merci bcp pour ta réponse mais il me manque encore qqch...

    Enfait je voulais stocker mes valeur dans des variable (TailleMaxBoite et SUM(Taille)) pour ensuite pouvoir faire une soustraction pour savoir l'espace libre qu'il me reste sur la boite...

    Car je cherche à afficher des statistiques d'une boite...

    Exemple :

    Nombre de messages totales
    Nombre de messages supprimés
    Nombre de messages conservés (qui se trouve encore sur la boite)
    Espace boite utilisé
    Espace boit restant

    Voila...

  4. #4
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Citation Envoyé par ushiwa.sasuke
    En fait je voulais stocker mes valeur dans des variables
    Quel type de variables? Des variables SQL que tu peut réutiliser dans une autre requête? Ou alors des variables en PHP?

    Pour les variables en SQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT
      @TailleTotale := SUM(m.Taille) AS TailleTotale
    ...
    Pour les variables en PHP, tu fais un mysql_fetch_row() et après tu consultes le tableau:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while( $row = mysql_fetch_row( $result ) ) {
    ...
      $tailleTotale = $row['TailleTotale'] ;
    ...
    }

    Sinon:

    Nombre de messages totales => COUNT(m.*)
    Nombre de messages supprimés => COUNT( ??? )
    Nombre de messages conservés => COUNT( ??? )
    Espace boite utilisé => SUM(m.Taille) AS TailleTotale
    Espace boit restant => u.TailleMaxBoite - SUM(m.Taille) AS TailleRestante

    Les ???, c'est parce que je ne sais pas comment tu différencies les messages supprimés de ceux qui sont encore dans la boite.

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 60
    Points : 19
    Points
    19
    Par défaut
    Plutot dans des variable PHP...

    Pour faire par exemple : $espacelibre = $taillemaxboite - $taillemsg;

    et pour les messages conservés je veux compter le nombre de messages se trouvant dans la boite...

    ensuite pour les messages effacés faire qqch du genre : $nbrmsgeffacé = $nbrmsgtotal - nbrmsgconservé

    j'ai l'impression que je m'enfonce plus qu'autre chose...

    P.S: j'ai fais un truc tout bête et j'arrive à afficher la Talle totale de ma boite, la taille des différents messages et la taille totale de tout les messages...

    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
    <? 
    include("config.php");
    $req_TailleMaxBoite = "SELECT TailleMaxBoite FROM utilisateur WHERE IdUtilisateur = IdUtilisateur";
    $don_TailleMaxBoite = mysql_query($req_TailleMaxBoite) or die (mysql_error().'<br>'.$req_TailleMaxBoite);
    while ($row = mysql_fetch_array($don_TailleMaxBoite)) {
    printf("Taille Max de la boite : %s", $row["TailleMaxBoite"]);
    print "<br>";
    //$total = $row(mysql_fetch_array($don_TailleMaxBoite));
    }
    echo "<br>";
     
    $req_TailleMsg = "SELECT Taille FROM infomessage WHERE IdUtilisateur = IdUtilisateur";
    $don_TailleMsg = mysql_query($req_TailleMsg) or die (mysql_error().'<br>'.$req_TailleMsg);
    while ($row = mysql_fetch_array($don_TailleMsg)) {
    	printf("Taille des messages : %s", $row["Taille"]);
    	print "<br>";
    }
    print "<br>";
    $req_TailletotalMsg = "SELECT SUM(Taille) AS TailleTotale FROM infomessage WHERE IdUtilisateur = IdUtilisateur";
    $don_TailletotalMsg = mysql_query($req_TailletotalMsg) or die (mysql_error().'<br>'.$req_TailleMsg);
    while ($row = mysql_fetch_array($don_TailletotalMsg)) {
    printf("Taille totale des messages : %s", $row["TailleTotale"]);
    print "<br>";
    	//$somme = $row(mysql_fetch_array($don_TailletotalMsg));
    }
    print "<br>";
    ?>

  6. #6
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    T'as toujours tes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE IdUtilisateur = IdUtilisateur
    qui servent à rien.

    C'est la taille de l'ensemble de ta boite que tu cherches ou alors utilisateur par utilisateur?

    Ensuite, tu fais 3 requêtes alors que tu pourrais tout faire en une seule:
    - moins de code, donc plus facile à maintenir
    - moins de communications réseau entre PHP et MySQL

    C'est quoi maintenant le problème qui fait que tu n'as pas mis le sujet en "Résolu"?

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 60
    Points : 19
    Points
    19
    Par défaut
    je voudrai faire ceci pour chaque utilisateur...

    ensuite j'ai mis bcp de code car je suis plutot débutant et j'arrive à mieux me relire comme ca...et faire les 3 en 1 je sais pas comment faire et j'ai testé votre code mais j'ai eu des erreurs pour la suite

    comment eviter moin de communication réseau entre PHP et MySql ?

    et il me reste à afficher l'espace utilisé et l'espace libre...

  8. #8
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Citation Envoyé par ushiwa.sasuke
    je voudrai faire ceci pour chaque utilisateur...
    C'est à ça que sert le "GROUP BY u.IdUtilisateur"

    Citation Envoyé par ushiwa.sasuke
    ensuite j'ai mis bcp de code car je suis plutot débutant et j'arrive à mieux me relire comme ca...et faire les 3 en 1
    Justement, grâce aux jointures (ici: LEFT OUTER JOIN)



    Citation Envoyé par ushiwa.sasuke
    j'ai testé votre code mais j'ai eu des erreurs pour la suite
    T'as testé comment? dans ton appli ou dans un outil comme phpMyAdmin? Quel type d'erreur exactement?

    Le "ça marche pas" n'est pas une réponse suffisante. Quand on me dit "ça marche pas", je répond, "c'est normal: il a pas de jambes !".



    Citation Envoyé par ushiwa.sasuke
    comment eviter moin de communication réseau entre PHP et MySql ?
    Simple: en réduisant le nombre de requêtes. Comment réduire le nombre de requêtes? Simple: en faisant des jointures. Period !


    Citation Envoyé par ushiwa.sasuke
    et il me reste à afficher l'espace utilisé et l'espace libre...
    Oui, mais tu ne donnes aucune information à ce sujet...

  9. #9
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 60
    Points : 19
    Points
    19
    Par défaut
    Alors j'ai mis le GROUP BY maintenant cela fonctionne...

    Mais j'ai encore 2 petites "erreurs"...la 1ère c'est qu'il affiche 3x la taille max de la boite alors qu'il est censé l'afficher qu'un seul foi et la 2ème c'est que je veux afficher la taille de chaque messages (en l'occurence il y en a 3 ici) il m'en affiche qu'un seul...

    pour le LEFT OUTER JOIN je n'ai pas trop compris ou le placer dans mon code...

    Voila le résultat de mon script :


    et voici ce que je cherche à afficher :


    Sinon pas mal la réplique...

  10. #10
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Citation Envoyé par ushiwa.sasuke
    Alors j'ai mis le GROUP BY maintenant cela fonctionne...
    C'est sûr: si tu fais pas ce que je te dis de faire, ça risque pas de marcher !

    Citation Envoyé par ushiwa.sasuke
    Mais j'ai encore 2 petites "erreurs"...la 1ère c'est qu'il affiche 3x la taille max de la boite
    C'est pas une erreur: il affiche la taille max de la boite pour CHAQUE utilisateur. Si tu as 3 utilisateurs avec comme tailles max respectives 10Mo, 20Mo et 10Mo, cela affichera 10Mo, 20Mo et 10Mo.

    Tu sembles avoir du mal avec les requêtes, les GROUP BY et les jointures. Le mieux pour toi, ce serait que tu testes les requêtes dans un outil comme phpMyAdmin, cela te permettrait de comprendre ce qu'il se passe et les résultats renvoyés.

  11. #11
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 60
    Points : 19
    Points
    19
    Par défaut
    oui j'ai remarqué en suivant les conseils ca fonctionne tjs mieux ^^

    Sinon oui j'ai du mal avec les requêtes et meme parfois avec le PHP...

    Et pkoi pas...je vais essayer dans phpmyadmin...mais le truc c'est que je dois rendre un site web dans 2semaines et j'ai du faire 60% à tt casser...donc je commence un peu à stresser et je me dis que je dois pas trop trainer sur des truc comme ca...mais bon si je maitrise pas ca je en pourai pas avancer...

  12. #12
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Justement: tu élabores ta requête dans phpMyAdmin et tu la modifies jusqu'à temps qu'elle fasse ce que tu veux. Ensuite seulement tu l'intègres dans ton code PHP, comme ça si ça ne marche pas, tu es sûr que ça vient pas de la requête. C'est plus productif.

    Sinon, bonne chance pour ton projet !

    Aussi, si c'est un projet universitaire, fait attention à ce que ton projet marche également sur les serveurs de ta fac (ex: avec la configuration de EasyPHP, MySQL autorise les majuscules dans les noms de tables, ce qui n'est pas forcément le cas sur tous les serveurs). De même, vérifie la version de MySQL sur le serveur qui doit faire tourner ton site web.

  13. #13
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 60
    Points : 19
    Points
    19
    Par défaut
    Monsieur je vous remercie j'ai crois que j'ai enfin compris le GROUP BY et le LEFT OUTER JOIN...La preuve en une seule requête j'arrive à tout avoir...

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <? 
    include("config.php");
    $req_Message = "SELECT Login, TailleMaxBoite, Taille, SUM(Taille) AS TailleTotale FROM infomessage m LEFT OUTER JOIN utilisateur u ON (u.IdUtilisateur = m.IdUtilisateur) GROUP BY u.IdUtilisateur";
    $don_Message = mysql_query($req_Message) or die (mysql_error().'<br>'.$req_TailleMsg);
    while ($row = mysql_fetch_array($don_Message)) {
    printf("Utilisateur : %s <br>Taille Max de sa boite : %s<br> Taille de chacun de ses messages : %s<br> Taille totale de ses messages : %s<br>", $row["Login"], $row["TailleMaxBoite"], $row["Taille"], $row["TailleTotale"]);
    print "<br>";
    }
    print "<br>";
    ?>
    Cela dit c'est bizzare j'ai tjs un seul message qui s'affiche alors je devrai en avoir 3...

    Voici ce que ca me donne comme résultat :


    Meci encore !!!

  14. #14
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Il y a un truc que tu ne sembles pas avoir saisi: les fonctions SUM(), COUNT(), AVG()... sont des fonctions d'aggrégation, qui ont besoin d'un GROUP BY (sauf cas particulier). Lorsque tu fais un GROUP BY, et que dans ton SELECT tu as autre chose qu'une fonction d'aggragation (la colonne "Taille", par exemple) cela ne gardera que la la première ligne.

    Ceci n'a donc pas de sens:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Taille, SUM(Taille) ...
    Si tu veux avoir chacun des messages de Céline et avoir des statistiques à la fin, il faut faire 2 requêtes distinctes.

    A part ça, tu peux me tutoyer.

  15. #15
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 60
    Points : 19
    Points
    19
    Par défaut
    Dacor je vais corriger ca...ceci dit c'est dommage de pas pouvoir tt faire en une seule requête mais bon on va dire que c'est le petit défaut de MySQL

    Sinon merci pour tes explications, cela m'a bcp aidé !!!

    Je vais vite corriger ca et je te tiens au courant...

    J'ai testé un petit truc cela fonctionne mais bon cela gache un peu l'affichage

    aurai tu une petite idée pour obtenir + ou - le meme affichage que dans mon post précédent ?

    Merci d'avance.

  16. #16
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Citation Envoyé par ushiwa.sasuke
    Dacor je vais corriger ca...ceci dit c'est dommage de pas pouvoir tt faire en une seule requête mais bon on va dire que c'est le petit défaut de MySQL
    C'est pas un défaut du tout: ça peut pas tout faire à la fois non plus ! (y compris le café). En plus, ce n'est pas propre à MySQL seulement.


    Citation Envoyé par ushiwa.sasuke
    aurai tu une petite idée pour obtenir + ou - le meme affichage que dans mon post précédent ?
    Pour les problèmes d'affichages, c'est du HTML. Par contre, en PHP, on ne se sert pas trop de la fonction printf issue du C, car cela oblige à regarder à la fin de la fonction quels arguments ont été passés en paramètres pour comprendre ce que ça affiche. On préfère utiliser l'instruction "echo". Le printf sert si tu veux utiliser un formatage spécifique.

  17. #17
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 60
    Points : 19
    Points
    19
    Par défaut
    le jour ou un language fera le café je me ferai moine ^^

    sinon c'est vrai j'avais pas du tout pensé au html pour l'affichage quel idiot je suis

    Je vais faire ca dans l'après midi et je te montre le résultat tout propre (si j'y arrive mdr)

  18. #18
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 60
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    alors j'ai "corrigé" l'affichage mais par contre j'ai tjs le meme problème...

    Celui qui affiche qu'un seul message au lieu de tous...

    Voici ce que j'ai corrigé :

    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
     
    <? 
    include("config.php");
    $req_Message = "SELECT Login, TailleMaxBoite, SUM(Taille) AS TailleTotale FROM infomessage m LEFT OUTER JOIN utilisateur u ON (u.IdUtilisateur = m.IdUtilisateur) GROUP BY u.IdUtilisateur";
    $don_Message = mysql_query($req_Message) or die (mysql_error().'<br>'.$req_TailleMsg);
    while ($row = mysql_fetch_array($don_Message)) { ?>
    <html>
    	<body>
    		<table>
    			<tr>
    				<td>Utilisateur :</td>
    				<td><? echo $row["Login"];?></td>
    			</tr>
    			<tr>
    				<td>Taille de la boite :</td>
    				<td><? echo $row["TailleMaxBoite"];?></td>
    			</tr>
    			<tr>
    				<td>Taille Total des messages :</td>
    				<td><? echo $row["TailleTotale"]; ?></td>
    			</tr>
    			<tr>
    				<td>Details des messages :</td>
    				<td>
    				<?  $req_DetailMessage = "SELECT Taille FROM infomessage GROUP BY IdUtilisateur";
    					$don_DetailMessage = mysql_query($req_DetailMessage) or die (mysql_error().'<br>'.$req_DetailMessage);
    					while ($row = mysql_fetch_array($don_DetailMessage)) {
    					echo "".$row["Taille"]." - ";}
    					?></td>
    			</tr>
     
    		</table>
    	</body>
    </html>
    <? } ?>
    et voici ce que cela m'affiche :


    Bizarre...non ?!?!?!

  19. #19
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Dans ta deuxième requête, il ne faut pas faire de GROUP BY (tu devrais réviser tes cours de SQL pour savoir à quoi sert le GROUP BY).

    Sinon, tu n'as pas besoin de 2 requêtes, une seule suffit (je pensais qu'en 2 requêtes ça serait plus facile pour toi, mais visiblement, c'est pas le cas)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT u.Login, u.TailleMaxBoite, IFNULL(m.Taille, 0) AS Taille
    FROM utilisateur u
    LEFT OUTER JOIN infomessage m ON (u.IdUtilisateur = m.IdUtilisateur)
    Tu ferras le total "à la main".

    Pour l'exploitation des résultats, va jeter un oeil à ce sujet:
    http://www.developpez.net/forums/viewtopic.php?t=424355

    ***
    Aussi, je le remarque seulement maintenant, mais dans tes requêtes tu as inversé les tables 'utilisateur' et 'infomessage' dans le LEFT OUTER JOIN, ce qui, du coup, n'a pas du tout la même signification. Tu réviseras aussi les différents types de jointure (INNER JOIN et LEFT OUTER JOIN en particulier)

  20. #20
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 60
    Points : 19
    Points
    19
    Par défaut
    merci pour la correction de la requête, mais par contre cela s'affiche comme ceci :


    j'aimerai savoir si c'est possible plutot d'afficher ca comme ceci :

    Utilisateur : Celine
    Taille de la boite : 1000000
    Tailles des messages :
    5435
    14758
    8768

    ensuite quand tu parles de faire le total à la main c'est à dire stocker chaque message dans un tableau puis faire la somme en fesant un truc du genre :

    $taille = $taille_msg1 + taille_msg2....;

    ton lien est sympa j'ai presque tout compris seulement que quand tu parcours en PHP c'est un peu chaud...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Addition valeur datagridview
    Par DjSeblaterreur dans le forum Windows Forms
    Réponses: 10
    Dernier message: 05/11/2007, 17h53
  2. [VBA-E] Addition des valeurs des textbox
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 49
    Dernier message: 15/02/2006, 14h49
  3. [68k] Addition des 50 premières valeurs d'un tableau
    Par mortalius dans le forum Autres architectures
    Réponses: 2
    Dernier message: 01/12/2005, 14h43
  4. [JSP] addition deux valeurs en sortie d'une jsp
    Par LESOLEIL dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 08/06/2005, 11h13
  5. [jsp] addition entre deux valeurs recupérées en Java
    Par LESOLEIL dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 07/06/2005, 13h19

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