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

Langage SQL Discussion :

[DEBUTANT] petit probleme de requete sql


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Points : 47
    Points
    47
    Par défaut [DEBUTANT] petit probleme de requete sql
    bonjour!

    imaginos que je gere un systeme de document dans lequel lorsque je cree un document, les GROUPES autorisés (ayant des droits) en sont informés par mail

    comment je fais pour que une personne qui appartienne a deux groupes ne recoive pas le mail deux fois?

    ca c'est la requete qui revoie les groupes autorises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    $query4= "SELECT NUM_GROUPE
                   FROM  groupe_doc
    	  WHERE NUM_DOC=".$_POST["num_doc"];
     
    $result4 = db_send_query("Erreur lors de la récupération des groupes autorisés pour le document", $query4);
    ca c'est la requete qui renvoie tous les utilisateurs pour chaque groupe


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    while($res4 = db_fetch_assoc($result4)){
       $query5= "SELECT NUM_USER	
    	     FROM groupe_user
    	     WHERE NUM_GROUPE=".$res4['NUM_GROUPE'];
     
     
       $result5 = db_send_query("Erreur lors de la récupération des          utilisateurs autorisés", $query5);
       while($row = db_fetch_assoc($result5)){
           send_mail (array($row['NUM_USER']), "crée", $date, $nom, $doc, $motif, $action, $doc_id);
    		}
    	}
    merci d'avance

  2. #2
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Salut,
    As tu essayé le DISTINCT qui permet de ne pas avoir de doublons ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while($res4 = db_fetch_assoc($result4)){
       $query5= "SELECT DISTINCT(NUM_USER)
    	     FROM groupe_user
    	     WHERE NUM_GROUPE=".$res4['NUM_GROUPE'];
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  3. #3
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Salut,

    merci SVP d'éviter le code PHP ou autre sur le forum SQL, ça "noie" la requête (cf CONSEILS... à lire AVANT de POSTER !)

    Tu peux procéder ainsi : (sous requête)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT NUM_USER    
      FROM groupe_user
     WHERE NUM_GROUPE IN (SELECT NUM_GROUPE
                            FROM groupe_doc
                           WHERE NUM_DOC=".$_POST["num_doc"]);
    Ou ceci : (jointure avec Distinct)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DISTINCT GU.NUM_USER    
      FROM groupe_user GU INNER JOIN groupe_doc GD
           ON GU.NUM_GROUPE = GD.NUM_GROUPE
     WHERE  GD.NUM_DOC=".$_POST["num_doc"]);
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 098
    Points : 28 406
    Points
    28 406
    Par défaut
    Et pourquoi pas une seule requête pour récupérer les utilisateurs depuis le document ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Query="SELECT  USR.NUM_USER 
    FROM    groupe_user as USR
      INNER JOIN
            groupe_doc  as DOC
        ON  DOC.NUM_GROUPE = USR.NUM_GROUPE
    WHERE   DOC.NUM_DOC=".$_POST["num_doc"]."
    GROUP BY USR.NUM_USER"
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Points : 47
    Points
    47
    Par défaut
    merci d'etre passé dans mon topic

    mais le distinct ca ne marche pas , la personne appartenant a deux groupes autorisés recoit toujours deux mails identiques

    edit1: je viens de voir les autres réponses

    merci! je vais essayer comme ca

    je m'excuse pour le code php

    edit2: ah oui je suis bete j'aurais pu faire en une seule requete;

    edit3:

    MERCI CA MARCHE!!!! merci pour votre aide !

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

Discussions similaires

  1. petit probleme de requete SQL dans formulaire
    Par kumo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 07/06/2007, 15h37
  2. Probleme de requete SQL avec un champs date
    Par ju360modena dans le forum ASP
    Réponses: 5
    Dernier message: 16/06/2005, 11h18
  3. Probleme Session/requete SQL
    Par kolib dans le forum ASP
    Réponses: 4
    Dernier message: 14/06/2005, 16h23
  4. petit probleme de requete
    Par nico33307 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 25/08/2004, 11h36
  5. probleme avec requete sql aime pas les strings
    Par lil_jam63 dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/02/2004, 14h45

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