begin process at 2012 02 13 13:56:24
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de données

 > MOTEUR DE RECHERCHE

MOTEUR DE RECHERCHE


 Information sur la source

Note :
10 / 10 - par 3 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Base de données Niveau :Débutant Date de création :17/02/2002 Date de mise à jour :17/02/2002 03:38:43 Vu :13 006

Auteur : pacman

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

 Description

Création d'une requette SQL de recherche avec plusieurs mots clés.  

Source

  • '*************Création de la requette SQL de recherche***********************
  • set conn=server.createobject("adodb.connection")
  • conn.open "--nom du dns--"
  • dim table
  • dim mot_cle
  • dim requette
  • dim listecle
  • '****Nom de la table et des champs de recherche********
  • table="produits"
  • dim champ(5)
  • champ(0)="champ1"
  • champ(1)="champ2"
  • champ(2)="champ3"
  • champ(3)="champ4"
  • champ(4)="champ5"
  • '****Mot cle****
  • mot_cle="paris marseille nancy rouen montpellier"
  • '****Type de recherche***
  • 'config=1 tous les motes clés
  • 'config=2 ou moins un des mots clés
  • config=1
  • requette="select * from "&table&" where "
  • if mot_cle<>"" then
  • listecle = Split(replace(mot_cle,"'","''")," ",-1, 1)
  • i=0
  • while i<=UBound(listecle)
  • if config=1 then
  • if i>0 then requette=requette&" and " end if
  • else
  • if i>0 then requette=requette&" or " end if
  • end if
  • i2=0
  • while i2<UBound(champ)
  • if i2=0 then
  • requette=requette&"("
  • else
  • requette=requette&" or "
  • end if
  • requette=requette&champ(i2)&" like '%"&listecle(i)&"%'"
  • if i2=(UBound(champ)-1) then requette=requette&")" end if
  • i2=i2+1
  • wend
  • i=i+1
  • wend
  • end if
  • set resultat=conn.execute(requette)
  • '*************Création de la requette SQL de recherche***********************
  • l'exemple ci-dessus renvoi cette requette SQL
  • select * from produits where (champ1 like '%paris%' or champ2 like '%paris%' or champ3 like '%paris%' or champ4 like '%paris%' or champ5 like '%paris%') and (champ1 like '%marseille%' or champ2 like '%marseille%' or champ3 like '%marseille%' or champ4 like '%marseille%' or champ5 like '%marseille%') and (champ1 like '%nancy%' or champ2 like '%nancy%' or champ3 like '%nancy%' or champ4 like '%nancy%' or champ5 like '%nancy%') and (champ1 like '%rouen%' or champ2 like '%rouen%' or champ3 like '%rouen%' or champ4 like '%rouen%' or champ5 like '%rouen%') and (champ1 like '%montpellier%' or champ2 like '%montpellier%' or champ3 like '%montpellier%' or champ4 like '%montpellier%' or champ5 like '%montpellier%')
'*************Création de la requette SQL de recherche***********************
set conn=server.createobject("adodb.connection")
conn.open "--nom du dns--"

dim table
dim mot_cle
dim requette
dim listecle

'****Nom de la table et des champs de recherche********
table="produits"
	
	dim champ(5)
	champ(0)="champ1"
	champ(1)="champ2"
	champ(2)="champ3"
	champ(3)="champ4"
	champ(4)="champ5"


'****Mot cle****
mot_cle="paris marseille nancy rouen montpellier"

'****Type de recherche***
'config=1 tous les motes clés
'config=2 ou moins un des mots clés
config=1


requette="select * from "&table&" where "

if mot_cle<>"" then

	listecle = Split(replace(mot_cle,"'","''")," ",-1, 1)
	
	i=0
	while i<=UBound(listecle)
		if config=1 then
		if i>0 then requette=requette&" and " end if
		else
		if i>0 then requette=requette&" or " end if
		end if
			i2=0
			while i2<UBound(champ)
				if i2=0 then 
				requette=requette&"("
				else
				requette=requette&" or "
				end if
				requette=requette&champ(i2)&" like '%"&listecle(i)&"%'"
				if i2=(UBound(champ)-1) then requette=requette&")" end if
			i2=i2+1
			wend
	i=i+1
	wend

end if

set resultat=conn.execute(requette)
'*************Création de la requette SQL de recherche***********************



l'exemple ci-dessus renvoi cette requette SQL

select * from produits where (champ1 like '%paris%' or champ2 like '%paris%' or champ3 like '%paris%' or champ4 like '%paris%' or champ5 like '%paris%') and (champ1 like '%marseille%' or champ2 like '%marseille%' or champ3 like '%marseille%' or champ4 like '%marseille%' or champ5 like '%marseille%') and (champ1 like '%nancy%' or champ2 like '%nancy%' or champ3 like '%nancy%' or champ4 like '%nancy%' or champ5 like '%nancy%') and (champ1 like '%rouen%' or champ2 like '%rouen%' or champ3 like '%rouen%' or champ4 like '%rouen%' or champ5 like '%rouen%') and (champ1 like '%montpellier%' or champ2 like '%montpellier%' or champ3 like '%montpellier%' or champ4 like '%montpellier%' or champ5 like '%montpellier%')



 Sources du même auteur

TEST DE VALIDITÉ D'EMAIL

 Sources de la même categorie

Source avec Zip GESTION_ENSEIGNANTS par Elmarzougui
Source avec Zip ZONE MEMBRE EN ASP "E-MEMBRES1.0" par cmaelc
Source avec Zip Source avec une capture Source .NET (Dotnet) ADMINISTRATION BASE DE DONNÉES ORACLE par chbayah
Source avec Zip Source avec une capture Source .NET (Dotnet) UTILISATION D'UN DATASET par ManuAntibes
Source avec Zip Source .NET (Dotnet) INSERTION / RECUPERATION D'IMAGE STOCKEE DANS UNE DB MS SQL ... par jimmy69

Commentaires et avis

Commentaire de Djero le 11/03/2002 12:09:49

C'est vraiment domage qu'il n'y ai pas de fichier zip dispo :(

Commentaire de Djero le 18/03/2002 10:34:08

Pourrais tu nous fournir un exemple complet avec connection à la bdd et tout le tintouin...

Merci à toi ;)

Commentaire de neoconception le 10/05/2003 18:03:20

putian, depuis le temps que je chercher ce genre de moteur de recherche "multi-mot" , heu, c ou qu'on donne les sous sous ? lol :p

Commentaire de D1stort1on le 05/08/2005 18:08:19

Salut

Ton code est vraiment excellent, bravo et merci :P

@+

Commentaire de kikuyu le 16/08/2005 10:17:25

Très beau code bravo !!

J'ai apporté une petite modification qui peut-être intéressante.
J'ai rendu dynamique le tableau se rapportant au nom des champs de BD (ligne 10 à 22)
voici le code :

   '***********************************requête SQL de la table concernée
   SQL="SELECT * FROM "&table&" "
   Set RS = server.createobject("ADODB.Recordset")
   RS.Open SQL, conn , 3, 3
   '**************************************Nombre de colonne dans la table
   nombre_de_champ = RS.Fields.Count
   '**************************************construction du tableau
   dim champ()
   redim champ(nombre_de_champ)

   numero = 0
  
FOR each BIDON in RS.Fields
champ(numero) =  BIDON.Name
numero=numero+1
Next


RS.Close : Set RS = Nothing

Commentaire de Nightwolf774 le 16/06/2006 14:02:34

Merci pour ton code mais je suis un débutant et je ne voix pas comment faire pour la request des mots clef? tu na pas fait de zone de saisie?
Et je tavouerais que je ne sais pas trop comment l'intégrer et faire les zone de réponse

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,499 sec (4)

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