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 :

Somme conditionnelle (mySQL) [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut Somme conditionnelle (mySQL)
    Bonjour à tous,

    Sauf erreur de ma part je n'ai pas trouvé de post sur ce sujet, si ce n'est pas le cas, merci de me re-diriger.


    J'aimerais faire si possible une somme conditionnelle dans un table (utilisé pour un site=> php).

    Je plante le décor:
    Ma table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ID(int) | PHOTO(varchar) | NB(int)
    ID étant l'identifient de l'utilisateur connecté
    PHOTO étant la photo qu'il regarde
    NB étant le nombre de fois qu'il l'a téléchargé

    Grosso modo j'ai une table remplie de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ID(int) | PHOTO(varchar) | NB(int)
    1       | A              | 1
    1       | B              | 1
    1       | C              | 1
    2       | A              | 2
    3       | C              | 4
    3       | B              | 2
    J'aimerais obtenir le nombre de téléchargement par individu, c'est à dir de faire la somme de NB en fonction de l'ID et je devrais obtenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ID(int) | SOM
    1       | 3
    2       | 2
    3       | 6
    L'utilisateur 1 a télécharger 3 fois, le 2, 2 fois et le 3, 6 fois.


    J'ai trouvé comment faire la somme en fonction d'un ID :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUM(NB) AS SOM FROM DownloadPhotos WHERE ID=1
    En php je boucle sur tout les ID mais apres je reste bloqué pour faire un tri du plus grand téléchargeur au moins grand.

    Quelqu'un à une idée que je pourrais explorer ?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 68
    Par défaut
    Si j'ai bien compris ton problème, il te suffit de modifier ta requête comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT SUM(NB) AS SOM FROM DownloadPhotos WHERE ID=1 ORDER BY SOM DESC;

  3. #3
    Membre averti
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut
    En faite non.
    Sur l'exemple que j'ai donné, je fais la requete uniquement sur l'ID 1.
    Du coup, je n'ai qu'une ligne à ma réponse. Ajouté l'orde me change rien le faite que je n'arrive pas à faire la somme sur tout les ID.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Par défaut
    Si j'ai bien capté la question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ID , SUM(NB) AS SOM FROM DownloadPhotos GROUP BY ID

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 68
    Par défaut
    ha ok...
    Alors soit tu fait une requete SQL pour resortir les résultats que tu veux trié:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT SUM(NB) AS SOM FROM DownloadPhotos GROUP BY ID ORDER BY SUM DESC
    Soit en php tu récupère tes résultats dans un tableau et tu les tris avec une fonction comme arsort()

  6. #6
    Membre averti
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut
    Citation Envoyé par Petibidon Voir le message
    Si j'ai bien capté la question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ID , SUM(NB) AS SOM FROM DownloadPhotos GROUP BY ID
    Exact, ça fonctionne tout à fait.
    Il me semblait avoir deja testé le GROUP BY, mais ça n'avait pas fonctionné, c'était surement du à autres choses.

    Merci pour votre aide.

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

Discussions similaires

  1. Effectuer des "sommes conditionnelles"
    Par bigben89 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 24/08/2007, 16h34
  2. Faire une somme conditionnelle
    Par pilpoil dans le forum Excel
    Réponses: 6
    Dernier message: 10/08/2007, 14h46
  3. [VBA-E]- Probleme pour realiser une somme conditionnelle
    Par ekynoxx dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 04/05/2007, 12h18
  4. somme conditionnelle sous VBA
    Par léclaireur dans le forum Général VBA
    Réponses: 5
    Dernier message: 26/04/2007, 10h32
  5. Réponses: 2
    Dernier message: 05/02/2006, 22h26

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