Bonjour tout le monde !
Je vous expose mon petit problème (j'en fini plus avec tous ces petits...)
Voilà, j'aimerais obtenir la somme des valeurs d'une table correspondant à chaque membre où pseudo.membre = '$login' ET où amount.valide = 'oui'
Voici ma table 'membre':
Voici ma table 'amount':
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
24
25
26
27
28 -- -- Structure de la table `membre` -- CREATE TABLE `membre` ( `id` int(11) NOT NULL, `pseudo` varchar(80) NOT NULL, `pass_md5` text NOT NULL, `nom` varchar(80) NOT NULL default '', `prenom` varchar(80) NOT NULL default '', `adresse` text NOT NULL, `cp` text NOT NULL, `ville` text NOT NULL, `urlblog` varchar(150) NOT NULL default '', `email` varchar(80) NOT NULL default '', `valide` varchar(4) NOT NULL, `parrain` varchar(80) NOT NULL default '', `affichages` bigint(20) NOT NULL default '0', `affich` bigint(20) NOT NULL default '0', `newsletter` varchar(4) NOT NULL, `date` datetime NOT NULL default '0000-00-00 00:00:00', `clic` bigint(20) NOT NULL default '0', `clic2` bigint(20) NOT NULL default '0', `clic3` bigint(20) NOT NULL default '0', `code` bigint(20) NOT NULL, PRIMARY KEY (`id`), ) ENGINE=MyISAM;
Ainsi et à titre d'exemple, Annie à les valeurs enregistrées dans la table 'amount' suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 -- -- Structure de la table `amount` -- CREATE TABLE `amount` ( `id` int(11) NOT NULL auto_increment, `membre` varchar(80) NOT NULL default '', `amount` varchar(80) NOT NULL, `valide` varchar(4) NOT NULL, `date` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=MyISAM;
1000 | valide = 'oui'
100 | valide = 'oui'
10 | valide = 'non'
1000 | valide = 'oui'
Dès lors la somme totale sera de 2100 où valide = 'oui'
Pour se faire, voici ma requête :
seulement dans ma requête $connect = mysql_query("SELECT..., cette condition pose problème :
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
24 <?php $connect = mysql_query("SELECT membre.id,membre.date,membre.pseudo,membre.nom,membre.prenom,membre.adresse,membre.cp,membre.ville,membre.urlblog,membre.email,amount.valide,sum(amount.amount) AS somme FROM membreLEFT JOIN amount ON membre.pseudo = amount.membre WHERE pseudo = '$login' AND amount.valide = 'oui' GROUP BY membre.id") or exit(mysql_error() . "<br/>$connect"); $row = mysql_query($connect); $somme = $row['somme']; while($row = mysql_fetch_assoc($connect)) { $valeur = 0; $valeur= $row['somme']; $valeur_total += $valeur; echo 'Bienvenue '.$row['nom'].' '.$row['prenom'].''; echo '<br>'; echo 'Total == '.$valeur_total.''; } ?>
En effet, car si aucune des valeurs d'Annie (cf plus haut dans le post) n'est validée amount.valide = 'non', ma requête ne me retourne aucun résultat (au lieu de m'afficher 0), logiqueWHERE pseudo = '$login' AND amount.valide = 'oui'puisque pseudo = '$login' AND amount.valide = 'oui'
Voilou, en espérant avoir fait le plus clair possible * je m'y suis efforcée en tout cas *
++
Partager