begin process at 2010 09 03 08:34:02
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de données

 > REQUÊTE DE RECHERCHE AVEC ACCENTUATION DES MOTS

REQUÊTE DE RECHERCHE AVEC ACCENTUATION DES MOTS


 Information sur la source

Note :
Aucune note
Catégorie :Base de données Classé sous :requete, recherche, mot Niveau :Débutant Date de création :24/04/2002 Date de mise à jour :24/04/2002 12:10:35 Vu :9 587

Auteur : jeanwebh

Ecrire un message privé
Site perso
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

 Description


Recherche rapide en coldfusion/sql server avec accentuation et caractères spéciaux :

Cette solution est une solution couteuse en CPU.
Pour être plus efficace, il faut créer des champs ( ou une table ) spéciale pour la recherche, en ayant au préalable enlevé les caractères spéciaux/accentuations.

  

Source

  • <cfquery name="recherche" datasource="database">
  • SELECT *
  • FROM table
  • WHERE 1=1 <!--- astuce pour ne mettre que des AND/OR --->
  • <cfif IsDefined("form.mots") AND TRIM(form.mots) neq "">
  • <cfset form.mot=LCase(ReplaceList(form.mot, "à,â,ã,á,ä,é,è,ê,ë,î,ï,ì,í,ô,ö,õ,ò,ó,ù,ú,û,ü,ç,ñ", "a,a,a,a,a,e,e,e,e,i,i,i,i,o,o,o,o,o,u,u,u,u,c,n"))>
  • <cfloop list="#form.mot#" delimiters=" " index="mot">
  • <cfif Len(Trim(mot)) GT 2><!--- Ne prendre que les mots de plus de 2 caractères --->
  • AND LOWER(
  • REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE(
  • champ_recherche
  • ,'à','a'), 'â','a'), 'ã','a'), 'á','a'), 'ä','a'), 'é','e'), 'è','e'), 'ê','e'), 'ë','e'), 'î','i'), 'ï','i'), 'ì','i'), 'í','i'), 'ô','o'), 'ö','o'), 'õ','o'), 'ò','o'), 'ó','o'), 'ù','a'), 'ú','u'), 'û','u'), 'ü','u'), 'ç','c'), 'ñ','n')
  • )
  • like
  • '%#mot#%'
  • </cfif>
  • </cfloop>
  • </cfif>
  • </cfquery>
<cfquery name="recherche" datasource="database">
	SELECT *
	FROM table
	WHERE 1=1 <!--- astuce pour ne mettre que des AND/OR --->
	<cfif IsDefined("form.mots") AND TRIM(form.mots) neq "">
		<cfset form.mot=LCase(ReplaceList(form.mot, "à,â,ã,á,ä,é,è,ê,ë,î,ï,ì,í,ô,ö,õ,ò,ó,ù,ú,û,ü,ç,ñ", "a,a,a,a,a,e,e,e,e,i,i,i,i,o,o,o,o,o,u,u,u,u,c,n"))>
		<cfloop list="#form.mot#" delimiters=" " index="mot">
			<cfif Len(Trim(mot)) GT 2><!--- Ne prendre que les mots de plus de 2 caractères --->
				AND LOWER(
					REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE(
					champ_recherche
					,'à','a'), 'â','a'), 'ã','a'), 'á','a'), 'ä','a'), 'é','e'), 'è','e'), 'ê','e'), 'ë','e'), 'î','i'), 'ï','i'), 'ì','i'), 'í','i'), 'ô','o'), 'ö','o'), 'õ','o'), 'ò','o'), 'ó','o'), 'ù','a'), 'ú','u'), 'û','u'), 'ü','u'), 'ç','c'), 'ñ','n')
					)
					like
					'%#mot#%'
			</cfif>
		</cfloop>
	</cfif>
</cfquery>

 Conclusion

Les commentaires/améliorations sont les bienvenus :-)


 Sources du même auteur

GENERER UN MOT DE PASSE ALÉATOIRE

 Sources de la même categorie

AFFICHER LE RESULAT D'UNE REQUETE SUR UNE BASE DE DONNÉES SU... par zah_zied
Source avec Zip MOTEUR DE RECHERCHE VERITY SUR DES FICHIERS TEXTE... par mojojo
Source avec Zip AJOUT DE MEMBRES + PAGE D'ACCÈS POUR CHAQUE USER! par Metrox
Source avec Zip INSERTION D'INFOS DANS UNE DB... par Metrox
SIMPLE REQUETTE AVEC AFFICHAGE DES RÉSULTATS par fabrice69

 Sources en rapport avec celle ci

Source avec Zip MOTEUR DE RECHERCHE VERITY SUR DES FICHIERS TEXTE... par mojojo
MOTEUR DE RECHERCHE DANS UNE BASE DE DONNÉES par Dadou911
METTRE EN GRAS UN OU PLUSIEURS MOTS RECHERCHÉS DANS UN TEXTE par lemulot
CONNEXION ET REQUETTE SUR UNE BASE DE DONNÉES par fabrice69
Source avec Zip PETIT MOTEUR DE RECHERCHE PAR MOT(S) CLÉ(S) par Skyride

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Recherche sur toutes les tables de ma bd [ par alf666666 ] hello, Comment faire une recherche sur toutes les tables de ma BD lorsque l'internaute tape qu'un mot du style, je tape le mot "test" et le site va m Recherche derniere page visitée [ par alf666666 ] Lorsque qu'un client surfe sur mon site (sans se loguer pour l'instant), ensuite il arrive sur une partie de mon site ou il est obligé de se loguer, Recherche Hébergeur CFMX [ par bastoun ] Hello tous, je suis actuellement &#224; la recherche d'un h&#233;bergeur CFMX (7 ce serait bien...) Voil&#224; ce que j'ai trouv&#233; d'int&#233;re comment je peux formater une chaine de caractere que je recupere d'une requete pour supprimer tous les mots entre {} [ par kamel92400 ] bonjour a tous !je voulais savoir comment faire pour modifier une chaine de caractere que je recupere d'une requete:la chaine c celle l&#224;:{AbonNom Requete access [ par midoutun ] Je veux savoir comment faire&nbsp; une requ&#234;te &#224; partir d'un sous formulaire? Requete SQL sur plusieurs bases [ par secdeouf ] Bonjour, Je souhaite savoir s'il est possible de faire une requête sur plusieurs bases. En fait je souhaite faire une jointure sur 2 tables situées d Afficher 10 résultat de recherche par pages [ par gomezkarim ] Bonjour;Mon site est en Coldfusion et je veux  afficher 10 résultats de recherche par pages, Merci pour votre réponse. Sauvegarder une requete query [ par Fabienduceps ] Slt, tout est dans la question , est il possible de sauvegarder le résultat d'un query , pour ensuite par exemple le modifier à sa guise avec des quer URL avec coordonnée [ par verruckter ] J'ai aperçu dernièrement des sites qui utilisait des adresses du genre http://www.mondomaine.com/index.cfm/1,201,0,30,html/Mot-du-president 1,201,0,3 Fonction de recherche [ par Mushcmwa ] Bonjour (bonsoir) a tous, Je développe actuellement un forum en coldfusion, j'arrive au bout mais je me casse la tête depuis quelques heures pour ess


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales