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 :

Alerte e-mail avec plusieurs critères [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2007
    Messages : 146
    Par défaut Alerte e-mail avec plusieurs critères
    Bonsoir à tous,

    J'ai un léger soucis pour un site internet que je suis en train de faire.

    Je dois créer un script d'alerte par mail dès qu'une annonce est ajouté.
    Le soucis c'est que c'est un système d'alerte multi critères avec une possibilité qu'un critère soit nul.

    Le soucis c'est que je n'arrive pas à trouvé une requête qui puisse me permettre de récupéré tous les tuples qui correspondent à l'ajout de l'annonce.

    Ma table qui contient toutes les demande d'alerte est de ce type, mais peux changé (:
    id, email, secteur_id (varchar), surface_id (varchar), prix_id (varchar), type_id (varchar)

    J'ai mis des champs varchar car je voulais mettre un liste de critère pour chaque elements tel les secteurs, les prix, etc ...

    Exemple d'un champ : secteur_id : [2][4]

    Cela correspond à l'id 2 et 4 pour les secteurs, cela veux dire que la personne veux être alerté dès qu'un ajout sur le secteur 2 ou 4 est effectué.
    Il peux aussi être nul car cela lui est égale.


    Exemple d'un tuple :
    Id : 1 ; email : test@test.com ; secteur_id : [2][3] ; surface_id : [4] ; prix_id : NULL ; type_id : NULL

    Voici les tuples secteur :
    id : 2 ; name : Bandol
    id : 3 ; name : Toulon
    id : 4 ; name : Sanary
    ...

    Tuples surface :
    id : 1 ; name = 1 piece
    id : 2 ; name = 2 pieces
    id : 3 ; name = 3 ou 4 pieces
    id : 4 ; name = 5 pieces ou plus

    Donc la, la personne a pour email test@test.com, elle veux etre alerté dès qu'un annonce pour Bandol ou Toulon est ajouté et qu'elle ai 5 pieces ou plus.


    J'avais un debut de requête mais qui malheureusement ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select email From table_alert WHERE secteur_id IS NOT NULL AND secteur_id IS LIKE (%[2]%) AND prix_id IS NOT NULL AND prix_id IS LIKE(%[1]%) etc ....
    Ici le 2 pour le like de secteur_id correspond à l'id 2 du secteur de l'annonce ajouté.

    Avez vous une idée de comment faire pour ce que je veux ?

    Je vous remercie beaucoup d'avance

  2. #2
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut
    je ne vois pas l’intérêt d'être alerté de l'ajout d'une annonce selon son prix ou sa surface seulement, à mon avis tu devrais faire un premier tri sur le secteur, donc si le secteur de l'annonce correspond aux secteurs de l'utilisateur à alerter puis éventuellement classer les annonces par pertinence, surface proche de la surface de l'utilisateur, puis prix etc...

  3. #3
    Membre confirmé
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2007
    Messages : 146
    Par défaut
    Car à vrai dire, il n'est pas obligé de définir le secteur puisque c'est un site pour le var, donc si le secteur ne le dérange pas, il laisse vide.

    Bah être alerté dès qu'un bien entre 200 000 et 300 000€ est ajouté j'aimerai le savoir car c'est mon budget par exemple, peu importe la surface ou le lieu.

  4. #4
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Salut,
    j'ai lu plusieurs fois ton post mais toujours pas sûr d'avoir compris, en particulier le problème du null. Pourquoi tu mets pas des OR dans ta requête ?
    En tout cas, si tu peux changer ton modèle de données, hésites pas

  5. #5
    Membre confirmé
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2007
    Messages : 146
    Par défaut
    Salut
    Car si le champ est nul, je ne dois pas le prendre en compte sinon ca peu faire foiré la requête.
    Si il a le critère de prix et de surface, il faut que ca corresponde au deux, et pas à l'un OU l'autre. Et là est le pb, il faut que se soit non nul pour que je le test et tous ceux qui sont non nul doivent etre respecté.

    Et bien j'ai fait moi même cette modélisation, mais je peux changé. J'avais pensé à des set pour chaque critère où je n'avais plus qu'à testé l'appartenance au set, mais si on ajoute un critère, c'est la cata ...

  6. #6
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    secteur_id IS NOT NULL AND secteur_id IS LIKE (%[2]%)
    revient à faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    secteur_id IS LIKE (%[2]%)
    ce que je veux dire c'est que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    secteur_id IS LIKE (%[2]%)
    implique que secteur_id n'est pas null, à moins que tu ai null[2][5] comme valeurs ce que je doute fort...

  7. #7
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Je suis pas un accro de l'atomicité des données mais sur ce coup-là ça pourrait valoir le coup de diviser en 2 tables.

    Sinon si on reprend :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Id : 1 ; email : test@test.com ; secteur_id : [2][3] ; surface_id : [4] ; prix_id : NULL ; type_id : NULL
    et comme requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select email From table_alert WHERE (secteur_id LIKE(%[2]%) OR secteur_id LIKE(%[3]%)) AND surface_id LIKE(%[4]%);
    ça te retourne pas le résultat attendu ?

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

Discussions similaires

  1. VBA-E Comment réaliser une recherche avec plusieurs critères ?
    Par Larsen21 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 14/12/2006, 13h43
  2. Réponses: 6
    Dernier message: 14/11/2006, 10h35
  3. [Javamail] Envoi mail avec plusieurs smtp
    Par igloof dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 02/11/2006, 12h08
  4. Réponses: 1
    Dernier message: 21/07/2006, 16h03
  5. Envoi d'un mail avec plusieurs pièces jointes
    Par Wilco dans le forum Composants VCL
    Réponses: 3
    Dernier message: 04/04/2006, 10h19

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