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 :

Affichage sur requête à condition / comparaison [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Affichage sur requête à condition / comparaison
    Bonjour, je souhaite affiche une liste de nom à partir de 2 base mysql à condition que les nom ne soit pas deja dans les 2 tables.

    mon but :
    Comparaison entre dispo.pseudo et user.username affiché les username si les username ne son pas deja dans les champs pseudo de la table dispo.

    j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $reqq = "SELECT * FROM dispo,user WHERE user.username<>dispo.pseudo ";
    $queryq = mysql_query($reqq);
     
    while ($fetchq = mysql_fetch_array($queryq)) {
    echo $fetchq['username'];
    echo '<br>';
    }
    le pb c'est que sa compare toutes les combinaisons possible et sa m'affiche environ 2500 resultat pour un 60aine d'entré dans la base dispo qui comporte moin de donnée.

  2. #2
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 360
    Points : 197
    Points
    197
    Par défaut
    peut tu reformulais ta question car j'ai pas bien compris la condition ,c'est pas tres bien explique

    sinon apres le fait que tu est plus de ligne que de valeur essai mais je croi pas que sa va resoudre ton probleme
    je croi que ta requete est mal construite donc si tu m'explique mieu se que tu veux je pourait t'aider (enfin j'espaire )

    a+

  3. #3
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 54
    Points
    54
    Par défaut
    Salut

    ton probleme c'est que tellle que tu l as ecrite ta requete va comparer pour chaque username de ta table user avec toutes les valeures de ta table dispo, et a chaque fois que ces données seront differentes tu afficheras le nom.

    Je pense que la méilleure solution consisterait a faire un not exist
    Je ne suis pas sure du code mais ca devrait etre un truc de ce style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     " SELECT username FROM user WHERE NOT EXISTS (select speudo from dispo where user.username == dispo.pseudo ) ";
    Mais comme je viens de le dire ce bout de code reste a confirmer

    J espere ne pas m etre trop trompé et de ne pas t avoir dis de bétise

    Bonne chance
    Ca marche du premier coup la cinquieme fois
    Les joies de l'info

  4. #4
    Membre habitué Avatar de Shinji62
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 135
    Points : 150
    Points
    150
    Par défaut
    Plutot

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select user from  username where user not in ( select pseudo from dispo)

  5. #5
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 360
    Points : 197
    Points
    197
    Par défaut
    ta juste a inverser user avec username dans la solus de Shinji62 car il a confondu le nom de champ et le nom de la table

    sinon je pense pour sa solution avec le not in elle a l'air correct

    a+

  6. #6
    Membre habitué Avatar de Shinji62
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 135
    Points : 150
    Points
    150
    Par défaut
    Ah oui dsl pour la petite erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $SQL = "select username from  user where username not in ( select pseudo from dispo)";

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Alors déjà merci pour vos réponse.

    Ta solution Shinji62 marche à moitier. je m'explique sa m'affiche les bon username qui ne sont pas dans la table dispo. Mais sa m'affiche encore 147 réponse à lieu de 3 :s soit 49 fois plus et 49 c'est le nombre d'entrer dans la base la table dispo.

    et là mes capacité sur sql, son limité !

    EDIT : Non enfaite c'est bon je suis un âne j'avais rajouté ,dispo aprés FROM user.

  8. #8
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 360
    Points : 197
    Points
    197
    Par défaut
    moi moi j'aime le SQL (bon ok je suis pas un dieu mais j'aime sa)

    donne moi les chant de tes 2 table avec les clef primaire et etrangere redimoi quel champ tu ve comparet avec quel champ et j'essai de te sortir la requete

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    j'ai edit mon last post enfaite c'était une erreur de ma part.

    j'avais écrit :

    select * from user,dispo where username not in ( select pseudo from dispo);

    au lieu de :

    select * from user where username not in ( select pseudo from dispo);

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

Discussions similaires

  1. [SQL] Affichage résultat requête sur 5 colonnes
    Par tondeuz dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 18/06/2007, 16h14
  2. [Requête] Explication sur une condition dans une Requête
    Par jimmymatrix dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 14/05/2007, 14h34
  3. requête condition sur plusieurs champs
    Par grinder59 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 23/02/2007, 13h52
  4. Réponses: 3
    Dernier message: 06/10/2006, 14h55
  5. [MySQL] Problèmes d'affichage de requêtes sur Online
    Par mogway95 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 25/05/2006, 00h12

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