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 :

Plusieurs valeurs pour un même champ


Sujet :

Requêtes MySQL

  1. #21
    Membre régulier Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 73
    Points
    73
    Par défaut
    Merci pour ton aide!!!

  2. #22
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonjour,
    Si tu as 1 version 4.1 ou >, ça devrait marcher, et ne te renvoyer que les resto. qui offrent ts les services de la table service

    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
    SELECT 	id_resto 
    FROM	resto
    WHERE	id_resto NOT IN
    (
    SELECT 	x.id_resto
    FROM 	
    (
    SELECT 	resto.id_resto,
    	service.id_service
    FROM	resto
    CROSS JOIN service
    ) x
    LEFT OUTER JOIN service_resto
    ON 	x.id_resto = service_resto.id_resto
    AND	x.id_service = service_resto.id_service
    WHERE 	service_resto.id_service IS NULL
    )
    ;

  3. #23
    Membre régulier Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par TheLeadingEdge
    Bonjour,
    Si tu as 1 version 4.1 ou >, ça devrait marcher, et ne te renvoyer que les resto. qui offrent ts les services de la table service

    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
    SELECT 	id_resto 
    FROM	resto
    WHERE	id_resto NOT IN
    (
    SELECT 	x.id_resto
    FROM 	
    (
    SELECT 	resto.id_resto,
    	service.id_service
    FROM	resto
    CROSS JOIN service
    ) x
    LEFT OUTER JOIN service_resto
    ON 	x.id_resto = service_resto.id_resto
    AND	x.id_service = service_resto.id_service
    WHERE 	service_resto.id_service IS NULL
    )
    ;


    Si tu peux m'expliquer un petit peu plus ta requete ca serait vraiment gentil car là je ne comprend rien!!!
    Ca correspond à quoi "x"?.....

  4. #24
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Tu crées 1 ensemble de ts les resto et ts les services. (produit cartésien des 2 ensembles resto et service en mathématiques)
    Cet ensemble doit être identifié, d'ou le x (pour x-join).
    Mais ça aurait pu être gabuzomeu...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    (
    SELECT 	resto.id_resto,
    	service.id_service
    FROM	resto
    CROSS JOIN service
    ) x
    Tu fais la jointure avec resto service pour ''repérer'' les restos auxquels il manque 1 ou plusieurs services. (ceux que tu veux éliminer de ta liste finale donc)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT 	x.id_resto
    FROM (...) x
    LEFT OUTER JOIN service_resto
    ON 	x.id_resto = service_resto.id_resto
    AND	x.id_service = service_resto.id_service
    WHERE 	service_resto.id_service IS NULL
    Enfin tu sélectionnes dans ta table resto ceux qui ne font pas partie de la liste des ''exclus''
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT 	id_resto 
    FROM	resto
    WHERE	id_resto NOT IN ...

  5. #25
    Membre régulier Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 73
    Points
    73
    Par défaut
    Merci pour ton eclaircissement. Mais est ce que c'est possible de me montrer comment adapter ta requette avec mon formulaire.
    Je te rapel ce qu'il ya dans mon formulaire:
    une liste déroulante pour le choix de catégorie (choix obligatoire), une autre liste pour le genre (choix non obligatoire), des cases à cocher pour le choix des services et des cases à cocher pour le choix des options.

    Au fait je ne sais pas comment faire ma requete suivant ce qu'il a été coché et choisi dans mes 2 listes.

    Il ya eu une proposition de la par de "cybher " au dessus. Mais je ne sais pas si je peux l'adapter!!!
    Merci ppour ton aide.

  6. #26
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    re,

    Tu peux mixer les 2 propositions en rajoutant 1 restriction qui corresponde aux cases cochées.
    Tu n'auras qu'1 seule requête à écrire, et qque soit le nombre de services que tt rajouteras ds ta table elle sera tjours valable.

    requete = "début de la rq ...
    (
    SELECT resto.id_resto,
    service.id_service
    FROM resto
    CROSS JOIN service
    WHERE id.service IN ("

    + "'nomduservice1'" si case à cocher est cochée [+ "',nomduservice2'" si case à cocher est cochée] et c...

    ")

    ) x fin de la rq..."

    en rouge la partie que j'ai ajouté

  7. #27
    Membre régulier Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 73
    Points
    73
    Par défaut
    Désolée de vous déranger encore mais je m'en sort pas!!!!
    G essayé de créer ma requete dynamyquement et voir sur un exemple si ca marche :
    Voici ma requete de base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $rep_cat=mysql_query("SELECT id_cat FROM categorie WHERE nom_cat='$_POST[categorie]'");
    //je déclare une var rep_rech qui va me sert de requete à lakel je vais rajouter mes autre conditions
    $rep_rech=$rep_cat;
    [code]
    .......
    //Avant je fait des test pour voir si le genre à été selectionné comme critère de recherche puis je le rajoute à ma requete initiale

    $rep_rech = $rep_rech + and cp_resto='$_POST
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '+ and id_genre='$genre_id[id_genre]';
    cp_resto est un champ de ma table resto!! je ne vois pas comment l'intégrer à ma requette car ca en marche pas!!!!
    A L'AIDEEEEEEEEEE!!!

    Avant voilà ce que j'avais :
    [code]
    $rep_rech=mysql_query("SELECT * FROM resto WHERE id_cat='$cat[id_cat]' AND cp_resto='$_POST
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ' AND id_genre='$genre_id[id_genre]'");
    Mais le prob avec ca c'est que plus y a de conditions plus ca va etre long mais ca marchait!

  8. #28
    Membre régulier Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 73
    Points
    73
    Par défaut
    desolé pour la mise en forme du code je lé mal fait!!! Si vous ne comprenez pas je reexplique!

  9. #29
    Membre régulier Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 73
    Points
    73
    Par défaut
    Salut
    Je n'arrive toujours pas à résoudre mon probleme!!!

  10. #30
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Salut,

    Tu aurais plus de réponses sur le forum PHP qui est fait pour ça...
    Ici on s'occupe surtout des problèmes purement MySQL.

  11. #31
    Membre régulier Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 73
    Points
    73
    Par défaut
    mais c du mysql mon prob, ya les deus dedans, mon prob, c que je n'arrive pas à bien formular ma requete!!

  12. #32
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    En-dehors de ton script PHP, tu arrives à faire des requêtes SQL de recherche ? Elles marchent ?

    => Donc le problème ne vient pas de MySQL mais de la construction de ton script PHP.

    Par ailleurs vu le fouillis que peuvent être tes messages précédents (balises code qui se baladent, langage SMS, ponctuation horripilante), ça ne m'étonne pas que les réponses ne fusent pas.

  13. #33
    Membre régulier Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 73
    Points
    73
    Par défaut
    Désolée pour le langage sms, mais pour les balises code ce n'est pas de ma faute si dans mon script je dispose d'une variable qui s'appelle 'code'!!! Je n'ai pas prévisualisé mon message pour voir à quoi ca ressemble!! Mais désolée quand même!

Discussions similaires

  1. Plusieurs valeurs dans un même champ
    Par fidecourt dans le forum Outils
    Réponses: 2
    Dernier message: 30/01/2013, 00h03
  2. Réponses: 2
    Dernier message: 21/08/2008, 12h46
  3. [MySQL] insérer plusieurs valeurs pour le même champ
    Par fAdoua123 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/03/2008, 13h41
  4. Plusieurs valeurs pour une même colonne
    Par maxlegrand dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/10/2007, 13h32
  5. [MySQL] Plusieurs valeur pour un meme champs
    Par poissonsoluble dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/06/2006, 15h34

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