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

SQL Procédural MySQL Discussion :

[SGBD] PHP/mysql additioner des variables


Sujet :

SQL Procédural MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 57
    Points : 32
    Points
    32
    Par défaut [SGBD] PHP/mysql additioner des variables
    Bon voilà 3 jours que j'essaye de retourner mon probleme dans tous les sens et que ça veut pas fonctionner.

    J'aimerais additioner les valeurs de champs qui eux meme sont des variables dépendant d'une autre table.

    youpie super clair

    Pour que ce soit plus clair voici les 2 tables :


    http://www.fur4x-hebergement.net/pic...teristique.sql
    http://www.fur4x-hebergement.net/pic...tique_user.sql

    J'aimerais additioner toutes les valeurs Santé qui se trouve dans la table _user c'est à dire 1a et 1g

    Je ne sais pas si je suis mega clair pcq c'est déjà confus dans ma tete

  2. #2
    Membre averti

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2004
    Messages : 220
    Points : 322
    Points
    322
    Par défaut
    tu recup 1a dans $1a et 1b dans $1b et tu fais $1a+$1b
    oui il faudrait que tu sois plus clair
    "Une méthode fixe n'est pas une méthode" (Proverbe chinois)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 57
    Points : 32
    Points
    32
    Par défaut
    comment expliquer :/

    j'avais essayé un faisant une boucle

    qui allait chercher tout les numero qui sont dans la catégorie "Santé" et correspondant au grade de la personne (dans la table caracteristique)

    avec ça j'obtenais les variables $numero (soit 1a et 1g)

    ensuite je faisais une seconde bloucle (dans la première)

    $query = "SELECT $numero FROM caracteristique_user WHERE id_user=".$id;
    $result = mysql_query($query);

    $total = 0;
    while ($val = mysql_fetch_array($result))
    {
    $valeur = $val [$numero];
    $total = $total + $valeur;
    }
    echo "<i>total </i>";
    mais ça ne fonctionne pas :s

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Moi je suis un petit peu perdu
    Mais je dirais que ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $valeur = $val [$numero];
    serait mieux comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $valeur = $val ['$numero'];
    Au aussi je me demande, au lieu de faire la somme de tout "tes trucs" dans une boucle.Pourquoi ne pas utiliser directement les fonctions d'agrégats qui sont à la base faite pour ca.

    Et donc au final au lieu d'avoir une boucle tu n'as "qu'une" seule ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $query = "SELECT sum($numero) as total FROM caracteristique_user WHERE id_user=".$id;
    $result = mysql_query($query);
    $val = mysql_fetch_array($result))
    $total = $val['total'];
    Mais bon ce code est valable que si c'est bien ce que tu veux mais comme je l'ai, je suis un peu perdu dans toutes tes explications

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 57
    Points : 32
    Points
    32
    Par défaut
    ne fonctionne pas mais bon je pense que je vais changer mon système

    il est pas clair et je m'embrouille moi-meme dedans dc tant pis

    merci qd meme

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Tu as une structure de table très explicite, dis-moi

    Je te propose deux boucles imbriquées :
    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
    <?php
     
    $row['1a'] = '1';
    $row['2a'] = '2';
    $row['3a'] = '1';
    $row['1b'] = '2';
    $row['1c'] = '2';
    $row['1d'] = '1';
     
    $alphabet = 'abcdefghijklmnopqrstuvwxyz';
    $strlen = strlen($alphabet);
    $sum = 0;
    for($i = 0; $i <10; ++$i){
       for($j = 0; $j < $strlen; ++$j){
          if(isset($row[$i.$alphabet[$j]])){
             $sum += $row[$i.$alphabet[$j]];
          }
       }
    }
     
    echo $sum;
     
    ?>

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 57
    Points : 32
    Points
    32
    Par défaut
    j'ai changé mon système avant de voir ta réponse

  8. #8
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    As tu vérifié si le contenu de ta requête est correct ? que ton $numero est correct ?
    Parce que si tu mets ta requete ainsi apres avoir défini un $numero précis c'est censé fonctionner
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $query = "SELECT SUM(1a) as total FROM caracteristique_user WHERE id_user=".$id;
    $result = mysql_query($query); 
    $val = mysql_fetch_row($result);
    echo $val['total'];
    testes ce code pour voir à titre de test pour voir juste quel résultat tu as

  9. #9
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Citation Envoyé par picsoun
    j'ai changé mon système avant de voir ta réponse
    En un sens, c'est dommage car je t'avais trouvé la réponse.
    D'un autre côté, c'est vrai que la structure que tu avais adoptée n'était pas la plus limpide que tu aurais pu trouver :/
    Tu as certainement changé pour le mieux

    @Kerod : picsoun ne voulait pas faire une somme sur la colonne a1 de tous les tuples. Il voulait additionner la valeur de chacun des champs d'un même tuple.

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

Discussions similaires

  1. [MySQL] Enregistrer en BDD une requête Mysql contenant des variables PHP puis l'exécuter
    Par ChriGoLioNaDor dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/11/2009, 02h13
  2. [SGBD] [PHP/mySQL] Délestage
    Par Funraill.net dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 29/10/2005, 12h49
  3. [SGBD] [php-mysql]
    Par oyigit dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 14/10/2005, 14h46
  4. [SGBD] [PHP/MySQL Query]Quelle est la taille du tableau retourné?
    Par Jean_Benoit dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 07/10/2005, 19h10
  5. [SGBD] [php/mySql] Récuperation numéro de l'erreur
    Par fab22montpellier dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 14/09/2005, 11h46

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