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

 MySQL Discussion :

Requête simple mais je n'y arrive pas


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut Requête simple mais je n'y arrive pas
    Bonjour à tous,
    J'ai besoin de faire une petite requête qui, à mon sens, est simple, mais je n'y arrive pas
    voici un petit exemple :
    Table reference
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    id_article | id_attribut
    10002      |  139
    10002      |  141
    10002      |  150
    10002      |  132
    10015      |  210
    10015      |  214
    10015      |  219
    ...
    j'aimerais tout simplement récupérer les id_attributs du produit 10002 qui a, par exemple, 139 comme id_attribut.
    Résultat attendu: 141, 150 et 132

    Je saurais le faire en utilisant 2 requêtes SQL et du PHP, mais je trouve que ça ferait un peu lourd. Est-il possible de le faire en une seule requête?

    Merci infiniment de votre aide

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    C'est effectivement vraiment basique !
    j'y arrive pas
    Tu as essayé quoi comme requête ?
    Quel résultat as-tu obtenu ?

    Ou alors je comprends mal ton besoin ?
    j'aimerais tout simplement recuperer les id_attributs du produit 10002 qui a par exemple 139 comme id_attribut
    Resultat attendu: 141, 150 et 132
    Pourquoi ne veux-tu pas 139 dans le résultat ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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 !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut
    Me relisant, je me rends compte que je me suis trompé dans l'exemple que j'ai donné, désolé.
    Alors j'explique un peu mieux.

    J'ai adopté le schéma de bdd propose par JPhi33 pour mettre en place une boutique en ligne: http://www.developpez.net/forums/d92...gestion-stock/
    Pour simplifier, ma table produits_references ressemble un peu à ça:

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    produits:
    id_produit | titre | ...
    1002       |  tshirt A
     
    produits_references:
    id_produit | id_produit_ref | prix | ...
    1002       |  10150         | 20 (tshirt A bleu M)
    1002       |  10151         | 20 (tshirt A bleu S)
    1002       |  10152         | 18 (tshirt A bleu XS)
    1002       |  10153         | 18 (tshirt A vert M)
    1002       |  10154         | 18 (tshirt A vert S)
     
    produits_caracteristiques:
    id_article | id_attribut
    10150      |  139 (tshirt A bleu)
    10150      |  145 (tshirt A taille M)
    10150      |  150 (tshirt A poids 120g)
     
    10151      |  139 (tshirt A bleu)
    10151      |  141 (tshirt A taille S)
    10151      |  151 (tshirt A poids 110g)
     
    10152      |  139 (tshirt A bleu)
    10152      |  149 (tshirt A taille XS)
    10152      |  152 (tshirt A poids 100g)
     
    10153      |  138 (tshirt A vert)
    10153      |  145 (tshirt A taille M)
    10153      |  150 (tshirt A poids 120g)
     
    10154      |  138 (tshirt A vert)
    10154      |  141(tshirt A taille S)
    10154      |  151 (tshirt A poids 110g)
    Voila, j'espère que c'est plus clair!

    Dans la page detail_produit.php, l'utilisateur a la possibilité de choisir la couleur et la taille.
    Lorsqu'on choisi la couleur, j'affiche les tailles disponibles pour cette couleur:
    - bleu -> M, S, XS
    - vert -> M, S

    Quelle requête utiliserais-tu?
    Je suis désolé, je n'ai pas la possibilité de t'envoyer ma requête car je suis en dzplacement et je n'ai pas accès a mon ordi, je suis dans un cyber

    Merci infiniment

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    Pas le temps de regarder en détail mais un rapide coup d'oeil à ton jeu de données me donne l'impression que tu as mal interprété la structure proposé et qu'il y a des choses bizarres dans tes données.

    Sinon, quand tu dis ceci :
    Citation Envoyé par redah75 Voir le message
    Dans la page detail_produit.php, l'utilisateur a la possibilité de choisir la couleur et la taille.
    Lorsqu'on choisi la couleur, j'affiche les tailles disponibles pour cette couleur:
    - bleu -> M, S, XS
    - vert -> M, S
    Tu décris un processus en plusieurs étapes et il serait logique de faire plusieurs requêtes successivement en fonction du choix de l'utilisateur. Ne t'embête pas à vouloir faire ça en une seule requête, ce serait inutilement lourd.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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 !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut
    mais un rapide coup d'oeil à ton jeu de données me donne l'impression que tu as mal interprété la structure proposé et qu'il y a des choses bizarres dans tes données.
    ah bon?? qu'est ce qui te parait bizarre??
    j'ai bien evidamenent pour une raison de clarete pas tout detaille. par exemple le champ id_attribut de la table produits_caracteristiques fait reference a une table externe, mais bon, je suppose que ce n'est pas ca le probleme!!

    Tu décris un processus en plusieurs étapes et il serait logique de faire plusieurs requêtes successivement en fonction du choix de l'utilisateur. Ne t'embête pas à vouloir faire ça en une seule requête, ce serait inutilement lourd.
    comment le ferait tu?? l'idee qui me traverse l'esprit est de
    1- recuperer les id_produit qui sont de la couleur bleu (10150, 10151, 10152)
    2- selectionner les tailles WHERE id_produit IN (10150, 10151, 10152)

    as tu une meilleure idee??

    En tout cas merci infiniment de ton aide

Discussions similaires

  1. Requête simple mais qui ne marche pas
    Par larbiDida dans le forum Requêtes
    Réponses: 4
    Dernier message: 31/03/2011, 16h56
  2. [PHP 5.2] [Mail] mail(): pas d'erreurs, mais les mails n'arrivent pas
    Par lvr dans le forum Langage
    Réponses: 3
    Dernier message: 27/04/2009, 11h29
  3. 2 requêtes identiques mais l'une ne fonctionne pas
    Par bybelos33 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 27/03/2009, 09h06
  4. Requête simple, mais avec des contraintes
    Par D-Kalck dans le forum Requêtes
    Réponses: 4
    Dernier message: 06/11/2008, 10h02

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