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 :

Requete selon criteres


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 45
    Par défaut Requete selon criteres
    Bonsoir,

    J'ai un site ou mes client peuvent créer des alertes et dès qu'un produit correspondant à leurs critères est déposé, ils reçoivent un email.

    La table qui stocke les alertes est composée de cette façon:

    id | categorie_id | couleur_id | taille_id
    1 2 5 2
    2 0 5 0
    3 5 0 0


    Je souhaite que lors du dépôt d'un nouveau produit par un client, une requête soit lancée pour sélectionner toutes les entrées qui correspondent aux critères du produit déposé (couleur, taille, catégorie, etc..)

    Un petit exemple sera plus parlant:

    Un client dépose un objet dans la catégorie "chaussures", de couleur "bleu" et de taille "44"

    Résultat = envoyer un mail aux personnes ayant créer l'alerte (j'utilise les id) : categorie = chaussure, couleur = "bleu" mais aussi à ceux qui ont juste précisé la catégorie "chaussure" ou la couleur "bleu".
    Par contre un enregistrement avec chaussure | rouge ne recevra pas le mail.

    Une aide est la bienvenue car je ne vois pas comment aborder ce problème.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    quelques jointure et ça roule mais il faudrait que tu montres la structure de tes tables categorie couleur et taille

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 45
    Par défaut
    Je n'ai pas besoin de jointure en fait, je vais juste récupérer tous les enregistrements qui "match" avec les paramètres (id couleur, id categorie, etc..) de l'article déposé.

    Ma table alertes est composée de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    id  |   categorie_id    |   couleur_id   |  taille_id
    1              2                    5                2
    2              0                    5                0
    3              5                    0                0
    Donc si le nouvel article déposé contient les paramètres suivants:
    categorie = 5, couleur = 5, taille = 2

    Alors:
    Enregistrement 1 = faux (condition des 3 params non remplie)
    Enregistrement 2 = vrai (car couleur = 5)
    Enregistrement 3 = vrai (car categorie = 5)

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    en reprenant cet exemple :
    categorie = 5, couleur = 5, taille = 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select id from alertes where categorie_id  = 5  or  couleur_id  = 5  or taille_id = 2

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 45
    Par défaut
    Citation Envoyé par boo64 Voir le message
    en reprenant cet exemple :
    categorie = 5, couleur = 5, taille = 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select id from alertes where categorie_id  = 5  or  couleur_id  = 5  or taille_id = 2
    Non car l'enregistrement 1 doit retourner faux car dans son alerte, le client à choisit d’être prévenu si (et seulement si) :
    categorie = 2, couleur = 5, taille = 2

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    Autant pr moi je n'avais pas vus les zeros ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select id from alertes where (categorie_id = 5 or  categorie_id = 0) and (couleur_id = 5 or couleur_id = 0)  and  (taille_id = 2 or taille_id = 0)

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

Discussions similaires

  1. Pb Requete selon criteres de periode et de nom
    Par fraguija dans le forum Requêtes
    Réponses: 6
    Dernier message: 22/10/2011, 21h30
  2. Changer la couleur de police selon critere
    Par guidzit dans le forum Access
    Réponses: 5
    Dernier message: 01/09/2006, 11h09
  3. [MySQL] ecriture d'une requête multi-critères
    Par webdestination dans le forum Langage SQL
    Réponses: 1
    Dernier message: 16/08/2006, 11h34
  4. Réponses: 21
    Dernier message: 01/08/2006, 20h44
  5. Requetes selon des critères
    Par Z[ee]k dans le forum Access
    Réponses: 6
    Dernier message: 05/06/2006, 14h06

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