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 :

[SQL] Addition de données d'une base de données


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Points : 47
    Points
    47
    Par défaut [SQL] Addition de données d'une base de données
    Bonjour à tous,
    J'ai une base de données sous la forme suivante :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
       
         id    nb  pic intensité 
        56017 1220 808 49010 
        56018 1220 809 14000 
        56019 1220 876 14000 
        56020 1221 308 14000 
        56021 1221 309 35010 
        56022 1221 309 21000 
        56023 1221 310 14000 
        56024 1221 595 21000 
        56025 1221 626 14000 
        56026 1221 808 49010 
        56027 1221 808 21000 
        56028 1221 808 28000
    J'aimerais pouvoir créer une nouvelle base qui dit que pour chaque nb identique si on a plusieurs fois la même valeur de pic alors on somme l'intensité de manière à n'avoir plus que un nb, un pic, une intensité dans la nouvelle base de données.
    Mon problème est que je ne sais pas, après avoir appelé la base de données, comment comparer une ligne avec la suivante dans mon code php...
    Vous avez une idée ?
    Merci beaucoup pour votre aide.

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Tu peux faire une requête SQL sur ta table qui va te faire ce calcul directement:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT nb, pic, SUM(intensite) as IntensiteTotale from matable GROUP BY nb, pic;

    ça va te renvoyer une ligne pour chaque paire nb/pic unique avec en intensité la somme des intensités pour cette paire (si j'ai bien compris ce que tu voulais).

    Ensuite dans ton code PHP tu crées ta nouvelle table avec les bonnes colonnes, tu effectues ta requête, tu récupères dans un tableau tous les résultats a l'aide d'une boucle et ensuite, pour chaque élément de ton tableau tu fais un INSERT dans ta nouvelle table.

  3. #3
    Expert éminent sénior

    Avatar de Deepin
    Homme Profil pro
    Ingénieur - Chef de projet Modélisation/Simulation
    Inscrit en
    Avril 2004
    Messages
    3 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Ingénieur - Chef de projet Modélisation/Simulation
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 164
    Points : 51 026
    Points
    51 026
    Par défaut
    hello,
    Dans ta deuxieme table je mettrai "nb" en unique.
    Dans ta premiere table tu recuperes toutes les lignes pour un nb dans un tableau. Avec un foreach, tu compares les valeurs de pic lorque qu elle sont identiques tu le mets dans un autre tableau par exemple. tu fais la somme des intensités. Puis tu recupere dans ta deuxieme table la ligne correspondant a nb. Tu fais la somme des deux et tu updates ta ligne.
    Voila.A+ et bon courage.

    PS: si tu veux plus de code envoies tes tables avec les valeurs.
    PS2: je crois bien que koopajah t'as bien mis sur le voie.

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Points : 47
    Points
    47
    Par défaut
    Merci bien pour vos réponses
    Je pense que ça peut m'aider... mais j'ai quand même un gros souci le code ci-dessous ne fonctionne pas !
    Je vous passe les définitions de variables qui fonctionnent.
    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
    $request2="SELECT scan_number,mass,SUM(intensity) FROM ".$table_mass2;
    mysql_query("TRUNCATE TABLE ".$table_mass3);
    if ($result2=mysql_query($request2))
    {
    	while ($ligne=mysql_fetch_row($result2))
    	{
    		$scan_number=$ligne[0];
    		$mass_rd=$ligne[1];
    		$tot_intensity=$ligne[2];
    	  // Mise des données dans la seconde base Mysql
        mysql_query("INSERT INTO ".$table_mass3." (scan_number,mass,intensity) VALUES (".$scan_number.",".$mass_rd.",".$tot_intensity.")");
    }
    }
    else
    {
    	echo "problème avec la base de données ".$table_mass3;
    }
    En fait il ne rentre pas dans la boucle if
    J'ai l'impression que c'est le SUM() qu'il ne comprend pas car si je l'enlève, il remplit la table... Alors je me suis dis que c'était un problème de fonction, j'ai essayé juste pour voir s'il faisait quelque chose avec MAX(), mais même problème ! D'ailleurs, j'ai également ce pb si je rajoute "GROUP BY ..." à la fin de ma ligne (sans la SUM() bien évidemment). Donc il doit y avoir une erreur de synthaxe quelque part dans $request2, mais où ?
    une idée ?
    Merci beaucoup.

  5. #5
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Il faut justement avoir un group by dans ta requete si tu veux faire un SUM sur un champ !

  6. #6
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Points : 47
    Points
    47
    Par défaut
    Ben oui, mais je l'ai enlevé pour alléger pour voir si c'est ça qui clochait, mais ça change rien !
    Avec le GROUP BY, ça marche pas non plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $request2="SELECT scan_number,mass,SUM(intensity) FROM ".$table_mass2." GROUP BY ".$scan_number.",".$mass_new;
    J'avoue que ça m'agace un peu...

  7. #7
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    pourquoi le group by dépend de variables? Le group by prend des noms de colonnes donc ca sera plutot ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $request2="SELECT scan_number,mass,SUM(intensity) FROM ".$table_mass2." GROUP BY  scan_number,mass";

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Points : 47
    Points
    47
    Par défaut
    QUELLE TACHE !!!
    C'est bon, je me suis emmêler les pinceaux avec les variables php et mysql la bonne requête c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $request2="SELECT scan_number,mass,SUM(intensity) FROM ".$table_mass2." GROUP BY scan_number,mass";
    Un grand merci !!!
    Vous êtes supers !

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

Discussions similaires

  1. [XL-2010] sélection des données depuis une base de données depuis une autre feuille
    Par Learning everyday dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/11/2014, 10h14
  2. Réponses: 14
    Dernier message: 23/04/2012, 22h32
  3. inserer les données d'une base de données dans une autres?
    Par enstein8 dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 14/10/2011, 13h33
  4. [SQL] script de dump d'une base de donnée
    Par developpeur_mehdi dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 19/03/2010, 08h17
  5. [C#/SQL Server 2005] Comment créer une base de donnée par le code ?
    Par FraktaL dans le forum Accès aux données
    Réponses: 4
    Dernier message: 09/09/2006, 17h27

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