|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Futur Membre du Club
![]() Inscription : août 2007 Messages : 74 ![]() |
[oups je n'avais pas vu qu'une section requête existait, mais je ne pense pas avoir les droits pour déplacer le sujet :p]
Bien le bonjour! Je viens à vous car j'ai un souci de requête! Sur mon site j'ai un moteur de recherche qui parse la recherche et qui la compare à différentes tables. Imaginons une recherche : "Boulanger paris". Je vais vérifier si boulanger existe dans ma table "metier", et si paris existe dans ma table "ville". En fonction je construis ma requête. Pour une telle demande voila à quoi ressemble ma requête : Code :
Comment faire pour ajouter une condition qui dise à ma requête d'appliquer le MATCH AGAINST que si mon champ a._id_ville est différent de 0? Code :
|
||||
|
|
00
|
|
|
#2 | ||
|
Futur Membre du Club
![]() Inscription : août 2007 Messages : 74 ![]() |
Je m'apporte un élément de réflexion :p
Je suis en train de voir CASE en sql, qui est une condition. Je tente donc cela : Code :
|
||
|
|
00
|
|
|
#3 | ||
![]() ![]() |
Puisque, apparemment, ton moteur de recherche n'est pas basé sur u simple champ de saisie de texte mais sur plusieurs champs de saisie ou des choix dans des listes, construis dynamiquement ta requête en fonction de ce qu'a fait l'utilisateur.
Un truc de ce genre : Code :
1) Mauvaise idée d'appeler une table 'user' car c'est un mot réservé du langage SQL ! 2) J'ai supposé que els choix se faisaient dans des listes ; la recherche plain texte devient inutile.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#4 |
|
Futur Membre du Club
![]() Inscription : août 2007 Messages : 74 ![]() |
Bonjour, merci pour cette réponse!
Et non ma recherche ne se fait qu'à partir d'un champ texte. Là est le souci! Sinon je fais une requête par table et en fonction des réponses je construis ma requête, mais ça va être lourd en terme de ressource, surtout si il y a beaucoup de recherches en même temps :s Je note pour la base user, je ne savais pas! |
|
|
00
|
|
|
#5 | |
![]() ![]() |
Citation:
Rien ne te permet de déterminer dans quelle table il faut chercher l'info. La seule solution rapide que je vois pour ton cas est de faire une requête qui englobe toutes les jointures externes possibles et un MATCH général sur toutes les colonnes à interroger. As-tu essayé, dans ta première requête, de remplacer AND par OR ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com