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 de lignes sur un champ


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 91
    Par défaut Somme de lignes sur un champ
    Bonjour,

    J'ai un tableau PHP ayant la structure suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    site1	|	poids	|	site2
    A1000	|	10	|	A2000
    A1001	|	15	|	A2000
    A1002	|	20	|	A2000
    A1000	|	10	|	A2000
    A1003	|	10	|	A3000
    A1004	|	20	|	A3000
    A1005	|	30	|	A3000
    J'aimerais effectuer l'opération consistant à obtenir un résultat du genre:
    Pour le 'site2' A2000:
    poids(A2000)=poids(A1000)+poids(A1001)+poids(A1002)
    poids(A2000)=10+15+20=45

    Et pour le 'site2' A3000:
    poids(A3000)=10+20+30=60

    En gros, je veux que chaque 'site2' prenne le 'poids' de chaque 'site1' tout en négligeant les 'site1' redondants (comme c'est le cas de A1000). Comment faire sous PHP?
    J'espère que j'ai été clair dans mes explications. Merci.

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 329
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 329
    Billets dans le blog
    17
    Par défaut
    Hello,
    Ce n'est pas un pb de PHP mais d'algorithmique
    Ce que je ferais :

    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
    // La variable nommée sites contient les données à analyser
    recherche = "A2000" // site2 à traiter
    total = 0 // Poids total
    déjàFaits = Tableau( ) // Tableau contenant les site1 déjà traités
    PourChaque élément De sites Faire
        // Si l'élément est sujet à la recherche...
        Si élément.site2 == recherche Alors
            // Si le site1 n'a pas encore été traité...
            Si DansTableau(élément.site1, déjàFaits) == Faux Alors
                total = total + élément.poids
                // site1 traité, on le place dans le tableau déjàFaits
                Empiler(déjàFaits, élément.site1)
            FinSi
        FinSi
    FinPourChaque
    Afficher("Poids total des site1 dédoublonnés de ", recherche, " est ", total)
    Fonctions PHP qui seront utiles :
    http://fr.php.net/in-array (= DansTableau( ))
    http://fr.php.net/array-push (= Empiler( ))

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 91
    Par défaut
    Citation Envoyé par Séb. Voir le message
    [code]
    recherche = "A2000" // site2 à traiter
    Ce que t'appelle 'recherche' est une variable? dois-je faire ça pour tous les site2? j'ai des milliers d'enregistrements.

    élément.site1 et élément.site2 sont aussi des variables?

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 329
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 329
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par aiss57 Voir le message
    Ce que t'appelle 'recherche' est une variable?
    Oui.

    dois-je faire ça pour tous les site2?
    Si tu veux connaître le poids de chaque site2 alors oui.

    élément.site1 et élément.site2 sont aussi des variables?
    élément représente une ligne du tableau fourni plus haut.
    élément.site1 et élément.site2 sont respectivement les valeurs des "champs" site1 et site2 de l'élément en question.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 91
    Par défaut
    Merci pour ta réponse très rapide.

    Citation Envoyé par Séb. Voir le message
    Oui.
    Si tu veux connaître le poids de chaque site2 alors oui.
    Je ne pense pas que cette solution soit valable pour mon cas puisque j'ai des milliers d'enregistrement. J'ai pris A2000 et A3000 juste pour l'exemple.

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 329
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 329
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par aiss57 Voir le message
    Je ne pense pas que cette solution soit valable pour mon cas puisque j'ai des milliers d'enregistrement. J'ai pris A2000 et A3000 juste pour l'exemple.
    N'est-ce pas un traitement ponctuel ??

Discussions similaires

  1. [AC-2003] Doublon de lignes sur 2 champs
    Par kawaya dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/07/2013, 14h30
  2. somme des lignes d'un champ ayant une meme propriété
    Par idrissiSimohamed dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 30/05/2011, 17h56
  3. Réponses: 19
    Dernier message: 20/09/2010, 09h04
  4. Somme ou compte sur un champ Oui\Non
    Par e040098k dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 06/07/2007, 17h13
  5. Somme de lignes sur union : je sèche.
    Par Vincenteyssier dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/12/2005, 10h15

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