Accueil > Forum > > > > Plusieurs mots clé dans le champ recherche, comment faire ?
Plusieurs mots clé dans le champ recherche, comment faire ?
mardi 1 juillet 2008 à 10:42:53 |
Plusieurs mots clé dans le champ recherche, comment faire ?

fxfx92
|
Bonjour à tous, J'ai un problème sur lequel je cale, et j'aimerais bien votre avis : Je voudrais faire un moteur de recherche pour une association pour chercher des membres. Je voudrais qu'on puisse faire des recherche par code postal, département ou par ville, séparés par des virgules dans le champ de recherche. Exemple : lyon, 75, 69008 > sort les membres habitant à Lyon, dans le département 75 ou ayant le code postal 69008. J'isole mes mots clé avec : $mots = str_replace(",", " ", $mots); $tab=explode(" " , $mots); // Dans ma table, j'ai une colonne pour la ville, une pour le département, et une pour le code postal. Est-ce qu'il faut que je regroupe ces 3 informations (ville, dep, cp) dans une seule colonne (que je passerais en index?) et faire les recherches dedans ou bien faut il faire un "explode" des mots-clé et faire une recherche dans les 3 colonnes ??? Aussi, est-ce que qqun aurait un lien qui présente un script qui ressemblerait à ce que je voudrais faire ? Merci infiniment pour votre aide ! 
|
|
mardi 1 juillet 2008 à 11:26:13 |
Re : Plusieurs mots clé dans le champ recherche, comment faire ?

Bling 182
|
Tes 3 colonnes ne peuvent pas etre regroupées (a la limite, 75 et 69008 ca peut aller dans la meme, et encore... parce que avec le CP, tu as le département. Mais pas l'inverse. Donc il va falloir que tu recherche dans les 2 (3) colonnes.
-- Développeur web freelance - Bling182 Dev : http://freelancedev.ovh.org - http://www.bling182.fr
|
|
mardi 1 juillet 2008 à 14:12:16 |
Re : Plusieurs mots clé dans le champ recherche, comment faire ?

neigedhiver
|
Salut, Comme le souligne Bling 182, le code postal contient le département. Tu peux donc te passer de ce dernier, puisque tu peux le retrouver (un vulgaire substr() suffit, et un malheureux petit tableau indexé pour avoir les noms des départements), mais à l'unique condition que la recherche d'un département se fasse par son numéro, et non par son nom. Ensuite, pas besoin de "script" pour cette recherche : le plus important, c'est la requête SQL. Ensuite, c'est de l'affichage classique (éventuellement pour séparer les résultats selon que c'est le code postal/département ou la ville qui correspond à ce qui est recherché, mais c'est facultatif). Donc, la requête SQL pourrait ressemble à quelque chose comme ça : SELECT id, nom, prenom, etc FROM membres WHERE ville='%recherche%' OR code_postal='%recherche%'; Le mot "recherche" est à remplacer par une variable PHP lors de la construction de la requête en PHP. Tu peux éventuellement choisir de trier selon la date d'adhésion, le nom de famille, etc. Neige
N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
|
|
mardi 1 juillet 2008 à 18:31:36 |
Re : Plusieurs mots clé dans le champ recherche, comment faire ?

fxfx92
|
Salut, merci pour vos réponses, c'est beaucoup plus clair maintenant pour la requête! Je parlais de script car toutefois, le gros problème qui m'est posé en amont (enfin sauf si vous avez une meilleure idée bien sûr  ), c'est de découper les mots clé de la recherche pour pouvoir faire ensuite mon Select. Je m'explique : Si qqun fait un recherche du genre : 75001, 75002, 75008, Suresnes , le résultat devra afficher la liste des membres habitant dans ces 3 départements et dans la ville de Suresnes. Pour ménager les ressources du serveur en ligne (il y a tout de même 65.000 membres), je préfère que les codes postaux soit uniquement recherché dans la colonne "Code Postal", idem pour les villes. Je pensais donc découper les mots recherchés avec mon explode (ca c'est bon), puis avec les regex identifier les mots qui sont des codes postaux des noms de ville (ca c'est bon aussi). Mon probleme est qu'il faudra ensuite compter ces codes postaux et ville et composer ma requete Select en conséquence et selon donc le nombre de codes postaux ou de villes choisis en recherche. Exemple : SELECT id, nom, prenom, etc FROM membres WHERE ville='%ville1%' OR ville='%ville2%' OR code_postal ='%code_postal1% OR code_postal ='%code_postal2% OR code_postal ='%code_postal3%; Est-ce que vous avez une idée de comment procéder s'il vous plait ? A moins que je fasse fausse route sur la construction en amont de la requête ? Merci pour votre aide, c'est vraiment sympa !
|
|
mardi 1 juillet 2008 à 18:44:23 |
Re : Plusieurs mots clé dans le champ recherche, comment faire ?

neigedhiver
|
Moi, ça me choque pas. Faudrait bencher mysql pour voir comment optimiser la requête au mieux. Faut quand même pas oublier les index, à bien définir (ça, c'est le plus tendu en fait). La doc de MySQL est assez peu causante sur le sujet... Des livres spécialisés seraient probablement plus pertinents. D'autres pistes à réfléchir : - une mise en cache des recherches (plus exactement, un index construit lors de l'enregistrement de membres, etc) - les regex dans MySQL Quant à une recherche FULLTEXT, je pense que c'est pas vraiment approprié pour une recherche sur un champ (en l'occurrence la ville) qui contient le plus souvent un seul mot. Neige
N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
|
|
mardi 1 juillet 2008 à 20:11:05 |
Re : Plusieurs mots clé dans le champ recherche, comment faire ?

fxfx92
|
Re, Yep merci pour tes tuyaux, je pensais effectivement à utiliser un index. Et pour les requêtes je vais faire comme tu me dis et voir combien de temps elles prennent. Ca sera sûrement plus long que des recherches dans des colonnes ciblées, au pire je m'en contenterais mais ca va sûrement me démanger de savoir qu'il y a une solution plus économe et rapide...Je pourrais toujours améliorer le code par la suite... 
|
|
Cette discussion est classée dans : code, recherche, champ, mots, clé
Répondre à ce message
Sujets en rapport avec ce message
recherche inerne par mots clé [ par jeuxfree ]
bonjour je suis novice et je cherche a installer un moteur de recherche interne car je propose des jaquettes et j'aimerais que les internautes les tro
Probleme script moteur de recherche [ par McGyver59 ]
Bonjour Sur le web j'ai trouvé un moteur de recherche interne pour mon site il fonctionne trés bien mais j'ai un soucis avec. Meme si je ne met rien
Problèmes de REGEX [ par bobino75 ]
Bonjour à vous, Je commence à travailler avec les REGEX et je me retrouve avec quelques problèmes. Je fais une recherche dans une base de données av
Class not found [ par lilyy59 ]
Bonjour J'ai fait une page avec toute mes requetes dans une class salarie, et dans une autre page j'appelle ma classe mais j'ai un [code=autre]Fatal
code pour recherche intuitive [ par tif27940 ]
Bonjour, j'ai un champ de recherche pour un nom ou un prénom et j'aimerai que lorsque un utilisateur commence a écrire un nom ou prénom des suggesti
Checkbox affiche une valeur dans un champ text [ par rodlake ]
Bonjour Je suis débutant en PHP et j'essaie de faire un formulaire d'évaluation. Le formulaire aura plusieurs questions sous ce format: Question 1 ou
creation d'un moteur de recherche php dans bdd [ par jbtv ]
Bonjour a tous ! je recherche quelqu un qui pourrai m'aidé à créé un moteur de recherche du type [code=html] Recherche par : <sele
verification sur chaque champ [ par paluma ]
bonjour; j'ai un code AJAX psse1<input type="password" name="pseudo" onKeyUp="verifPseudo(this.value)"
Moteur recherche SQL php [ par fregeal ]
Bonjour Je cherche un moyen d'avoir un champs de recherche sql qui affiche les resultats sous forme d'un tableau mais tous les scritps que j'ai pus t
Récuperé un champ entre deux dates [ par c3d94 ]
Bonjour, J'essaye de faire un moteur de recherche avec deux dates, celui ci après la recherche me ferai un tableau de mes champs et par la suite un ca
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|