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 :

problème requête WHERE


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut problème requête WHERE
    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':

    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;
    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
     
    -- 
    -- 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;
    Ainsi et à titre d'exemple, Annie à les valeurs enregistrées dans la table 'amount' suivantes :

    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 :

    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.'';
    
    
    }
    
    ?>
    seulement dans ma requête $connect = mysql_query("SELECT..., cette condition pose problème :

    WHERE pseudo = '$login' AND amount.valide = 'oui'
    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), logique 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 *

    ++

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Je dirais que c'est davantage un problème de traitement que de requête. Ce que tu peux faire, c'est initialiser la valeur totale avant ton while de traitement et en faire l'affichage après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     $valeur_total = 0;
    while($row = mysql_fetch_assoc($connect)) 
    { 
        $valeur_total += $row['somme'];
    }
     
    echo 'Total == '.$valeur_total.'';
    En revanche, ça peut poser problème pour l'affichage d'informations sur le membre (genre nom prenom) Pour ça, tu peux sans doute traiter ça en deux requêtes : une pour récupérer les infos de ton utilisateur et une pour rechercher le reste. Des fois, c'est plus simple...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. [MySQL] Problème requête UPDATE (WHERE)
    Par cedric.g dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/06/2012, 16h16
  2. Problème requête Toplink count(*) dans where
    Par probordelais dans le forum Persistance des données
    Réponses: 0
    Dernier message: 12/12/2011, 12h06
  3. Réponses: 4
    Dernier message: 11/01/2011, 16h29
  4. Problème requête SELECT condition WHERE string
    Par Glherbier dans le forum VBA Access
    Réponses: 3
    Dernier message: 27/10/2010, 18h43
  5. Requête DELETE problème de WHERE ... ???
    Par snoopy69 dans le forum Access
    Réponses: 4
    Dernier message: 21/11/2005, 11h19

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