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

Requêtes MySQL Discussion :

pouvez m'aider a formuler ma requette svp^^


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    20
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 20
    Points : 13
    Points
    13
    Par défaut pouvez m'aider a formuler ma requette svp^^
    bonjour à vous,

    Alors je fais un systém de sondage sur mon site, j'ai 3 tables:

    Table « sondage » ://la liste des sondages
    -id (auto-inc)
    -question (type text)

    Table « sondage_propositions » ://la liste des propositions
    (-id)
    -id_sondage
    -proposition (type text)

    Table « sondage_resultats » :
    (-id)
    -id_membre
    -id_sondage
    -id_resultat_proposition


    donc j'arrive dans ma méthode php avec $id_du_membre (l'id du membre qui est actuellement logguer)

    Je cherche en fait a obtenir toutes les questions (les sondages) dont ce membre n'a pas encore répondu.

    j'avais écrit ça naïvement en premier jet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select    Q.id as idquestion, Q.question, 
            R.id, R.id_membre, R.id_sondage
    from        sondage Q, sondage_resultats R
    where    R.id_membre='.$id_du_membre.' and Q.id != R.id_sondage

    donc je vais écrire un mix sql/francais qui traduit ce que je désire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select    Q.id as idquestion, Q.question, 
            R.id, R.id_membre, R.id_sondage
    from        sondage Q, sondage_resultats R
    where    Q.id != du R.id_sondage dont le R.id_membre=$id_du_membre
    voilou, si j'ai pas été assez claire n'ésitez pas a me demander.
    Merci de m'aider.
    Cordialement

  2. #2
    Membre à l'essai
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    20
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    bon j'ai trouvé une solution alternative, mais si quelqu'un a la réponse en une seul requette je suis preneur. ma solution:

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $srq = 'select    id, question from sondage where ';
    $rq = $this -> obsql -> query ('select id_membre, id_sondage from sond_result where id_membre='.$idmembre.' ');
            $i=0;
            while ($rs = $this -> obsql -> fetch_assoc ($rq)){
                if($i != 0) $srq .= " and ";
                $srq .= ' id != '.$rs['id_sondage'].' ';
                $i++;
            }
            if($i == 0 ) $srq .= " 1=1 ";

    a la suite de cet algo, la variable $srq contient précisément ce que je désire, mais elle a été préfabriqué grace a une requette préliminaire, je pense que c'est fesable sans ça mais ne sachant comment, je m'en tiendrais a ça en attendant qu'un puriste me vienne en aide

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Je cherche en fait a obtenir toutes les questions (les sondages) dont ce membre n'a pas encore répondu.
    Tu cherches donc les sondages pour lesquels il n'existe pas de réponse de cet utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT Q.id AS idquestion, Q.question
    FROM sondage Q
    WHERE NOT EXISTS (
      SELECT *
      FROM sondage_resultats R
      WHERE R.id_membre = '$id_du_membre'
    )
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Formuler une requette sur une page web
    Par Arvin dans le forum Visual C++
    Réponses: 5
    Dernier message: 07/07/2008, 09h25
  2. corriger ma requette svp
    Par lepeintre dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/06/2005, 11h56

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