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 :

mauvaise requete mysql


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut mauvaise requete mysql
    bonjour tous le monde

    voilou, j'ai deux tables, clients et service... les deux sont liés par l'id, et un clients.id peut etre egal a plusieurs service.id_user

    alors voila ca que je desirerais faire en une seule requete...


    selectionner autant de fois le client qu'il y a de clients.id=service.id_user
    avec tous les champs de clients et de service...
    si un client n'a pas de service il faut quand meme le selectionner


    quand je fais cette requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT *
    FROM clients c
    LEFT OUTER JOIN service s ON c.id = s.id_user
    ca marche....

    maintenant quand j'essaye de regarder si dans tous ce bazar y'en a ou le champs ville='lamorlaye', he bah si je fais ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT *
    FROM clients c
    LEFT OUTER JOIN service s ON c.id = s.id_user where
     c.contact LIKE '%%'  
    and c.commercial LIKE '%%' 
    and c.service_com LIKE '%%'  
    and s.nom LIKE '%%' 
    and s.prenom LIKE '%%' 
    and c.dpt LIKE '%%' 
    and c.statut_com LIKE '%%' 
    and c.prestation LIKE '%%' 
    and c.compte LIKE '%%'
     and c.ville LIKE '%lamorlaye%'

    ca affiche seulement ceux qui ont un c.id = s.id_user et pas les autres ce que j'arrive pas a comprendre pourquoi-donc seulement les clients qui possedent un service et dont adresse='lamorlaye'....

  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
    Et simplement :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT *
    FROM clients c
    LEFT OUTER JOIN service s ON c.id = s.id_user
    where c.ville LIKE '%lamorlaye%'
    ça ne suffit pas ?
    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]

  3. #3
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    ^^ non justement, car c est une recherche sur plusieurs champs a remplir au choix qu'on fait dans la bdd


    d'ou probleme de mettre aussi des s.nom....

    mais je comprends pas pourquoi quand je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT *FROM clients c
    LEFT OUTER JOIN service s ON c.id = s.id_user
    ca selectionne tous les id autant de fois que c.id = s.id_user et meme quand
    c.id != s.id_user

    mais quand je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT *
    FROM clients c
    LEFT OUTER JOIN service s ON c.id = s.id_user where
     c.contact LIKE '%%'  
    and c.commercial LIKE '%%' 
    and c.service_com LIKE '%%'  
    and s.nom LIKE '%%' 
    and s.prenom LIKE '%%' 
    and c.dpt LIKE '%%' 
    and c.statut_com LIKE '%%' 
    and c.prestation LIKE '%%' 
    and c.compte LIKE '%%'
     and c.ville LIKE '%lamorlaye%'
    la ca selectionne que quand c.id = s.id_user .....


    je suis mal parti...

  4. #4
    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
    Le problème vient de ta condition where. A partir du moment où tu as une condition where s.quelquechose ça implique que la requête doit renvoyer obligatoirement des services. Donc tu auto-limite la jointure.
    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]

  5. #5
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut


    merci, savais pas....


    bon bah je vais voir quoi faire...


    encore merci!

Discussions similaires

  1. [MySQL] mauvaise requete mysql
    Par kaking dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/10/2008, 10h08
  2. [SGBD] mauvaise requète 'where',mysql
    Par covin85 dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/07/2006, 14h11
  3. arret requete mysql
    Par titiyo dans le forum Bases de données
    Réponses: 5
    Dernier message: 15/10/2004, 17h40
  4. Requete MySql pour Mambo Open source
    Par azman0101 dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/06/2004, 09h34

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