Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/03/2006, 23h38   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 57
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 57
Points : 11
Points : 11
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
picsoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2006, 00h01   #2
Membre confirmé
 
Homme Clément Béni
Ingénieur qualité méthodes
Inscription : mars 2004
Messages : 220
Détails du profil
Informations personnelles :
Nom : Homme Clément Béni
Âge : 24
Localisation : France

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

Informations forums :
Inscription : mars 2004
Messages : 220
Points : 294
Points : 294
tu recup 1a dans $1a et 1b dans $1b et tu fais $1a+$1b
oui il faudrait que tu sois plus clair
azertyman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2006, 00h20   #3
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 57
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 57
Points : 11
Points : 11
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)

Citation:
$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
picsoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2006, 01h20   #4
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Moi je suis un petit peu perdu
Mais je dirais que ceci
Code :
 $valeur = $val [$numero];
serait mieux comme ca :
Code :
 $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 :
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
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2006, 01h26   #5
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 57
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 57
Points : 11
Points : 11
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
picsoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2006, 02h44   #6
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

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

Je te propose deux boucles imbriquées :
Code :
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;
 
?>
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2006, 03h09   #7
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 57
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 57
Points : 11
Points : 11
j'ai changé mon système avant de voir ta réponse
picsoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2006, 03h15   #8
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
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 :
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
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2006, 03h49   #9
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
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.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h37.


 
 
 
 
Partenaires

Hébergement Web