begin process at 2008 05 17 05:28:32
1 173 912 membres
44 nouveaux aujourd'hui
13 973 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MOTEUR DE RECHERCHE DANS UNE BASE DE DONNÉES


Information sur la source

Catégorie :E-Commerce Classé sous : moteur, recherche, bdd, sql, search Niveau : Initié Date de création : 29/04/2003 Date de mise à jour : 29/04/2003 23:27:21 Vu : 18 083

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

Description

Moteur de recherche en coldfusion qui accede a un champ ou plusieurs dans des bases de donnees et qui recherche des mots.

Tres pratique pour les boutiques en lignes et commerces

Source

  • <CFQUERY name="afficher" datasource="nom_de_votre_base_access">
  • SELECT * FROM table_de_votre_base WHERE 0=0
  • <CFLOOP index="i" from="1" TO="#ListLen(Form.champ_texte, ' ')#">
  • AND Nom_Colonne_BD LIKE '%#ListGetAt(Form.champ_texte, i, ' ')#%'
  • Or Nom1_Colonne_BD LIKE '%#ListGetAt(Form.champ_texte, i, ' ')#%'
  • </CFLOOP>
  • or reference = '#Form.champ_texte#'
  • </CFQUERY>
  • <HTML>
  • <HEAD>
  • <TITLE></TITLE>
  • <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></HEAD>
  • <BODY bgcolor="#0099FF" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
  • <CFIF #Form.Champ_texte# is "" >
  • Vous n'avez rien inscrit
  • </CFIF>
  • <CFIF #afficher.RecordCount# is "0" and #Form.Champ_texte# is not "" >
  • Rien ne correpond
  • </CFIF>
  • <cfif #Form.Champ_texte# is not "" and #afficher.RecordCount# is not "0" >
  • <cfoutput query="afficher" startrow="1" maxrows="1">
  • <B>#afficher.RecordCount#</B> produit <br><br>
  • </cfoutput>
  • <TABLE border="1" align="center" bordercolor="#999999" bgcolor="#000000">
  • <cfoutput query="afficher">
  • <TR>
  • <TD width="103" >
  • <B><font color="##FFFFFF">#CurrentRow#</font>- </B> </TD>
  • <TD width="223">
  • <P><font color="##FFFFFF">#Nom_Colonne_BD# </font>
  • <TD width="144">
  • <font color="##FFFFFF"> <b>#Nom1_Colonne_BD#</b></font></TD>
  • </TR>
  • </cfoutput>
  • </TABLE>
  • </CFIF>
  • <BR><BR>
  • <DIV align="center">
  • <A href="javascript:history.back()">
  • Recherche Infructueuse, cliquez ICI</A>
  • </DIV>
  • </BODY>
  • </HTML>
<CFQUERY name="afficher" datasource="nom_de_votre_base_access">
SELECT * FROM table_de_votre_base WHERE 0=0
<CFLOOP index="i" from="1" TO="#ListLen(Form.champ_texte, ' ')#">
AND Nom_Colonne_BD LIKE '%#ListGetAt(Form.champ_texte, i, ' ')#%'
Or Nom1_Colonne_BD LIKE '%#ListGetAt(Form.champ_texte, i, ' ')#%'
</CFLOOP>
or reference = '#Form.champ_texte#'
</CFQUERY>

<HTML>
<HEAD>
<TITLE></TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></HEAD>

<BODY bgcolor="#0099FF" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">

<CFIF #Form.Champ_texte# is "" >
Vous n'avez rien inscrit
</CFIF>

<CFIF #afficher.RecordCount# is "0" and #Form.Champ_texte# is not "" >
Rien ne correpond
</CFIF>

<cfif #Form.Champ_texte# is not "" and #afficher.RecordCount# is not "0" >
<cfoutput query="afficher" startrow="1" maxrows="1">
<B>#afficher.RecordCount#</B> produit <br><br>
</cfoutput>
  <TABLE border="1" align="center" bordercolor="#999999" bgcolor="#000000">
    <cfoutput query="afficher"> 
      <TR> 
        <TD width="103" >
          <B><font color="##FFFFFF">#CurrentRow#</font>- </B> </TD>
        <TD width="223"> 
          <P><font color="##FFFFFF">#Nom_Colonne_BD# </font> 
        <TD width="144"> 
          <font color="##FFFFFF"> <b>#Nom1_Colonne_BD#</b></font></TD>
             </TR>
    </cfoutput> 
  </TABLE>
</CFIF>
<BR><BR>
<DIV align="center">
<A href="javascript:history.back()">
Recherche Infructueuse, cliquez ICI</A>
</DIV>
</BODY>
</HTML>

Conclusion

donc, je resume, tt d'abord vous devez creer une base de donnees access. Ici ma base s'appelle nom_de_votre_base_access. Dans cette base, g cree une table qui s'appelle table_de_votre_base et cette table contient des colonnnes appelées ici Nom_colonne_Bd et Nom_Colonne_bd et reference.

Avant de copier le code vous devez creer une page de recherce avec un formulaire et un champ texte ou les clients peuvent entrer des mots... Logique, qui d'ailleurs ici sont séparés par des espaces. Le bouton submit de ce formualire devra avoir pour value le nom de votre fichier .cfm où vous inscrirez le code ke je vous ai donne. Et voila le tour est joue
  • signaler à un administrateur
    Commentaire de Dadou911 le 29/04/2003 23:29:41

    Ah oui et champ _texte c le nom du champ texte de votre premiere page ou vous inscrivez le texte
    ex: &lt;input type="text" name="champ_text"&gt;

  • signaler à un administrateur
    Commentaire de chtit le 02/05/2003 09:52:25

    Une toute petite chose:
      Si vous travaillez sur une base de données faisant la différence entre majuscule et minuscule, pensez à mettre vos critères de recherche soit en majuscule soit en minuscule.
    Exemple pour une base oracle :
    Upper(Nom_Colonne_BD) LIKE upper('%#ListGetAt(Form.champ_texte, i, ' ')#%')

  • signaler à un administrateur
    Commentaire de wari le 03/05/2003 10:32:43

    vous pouvez m'aider à crée une base de donnée sous jbuilder
    ou bien builder c++

  • signaler à un administrateur
    Commentaire de BenLaKnet le 21/01/2004 09:02:08

    Quand on ne peut utiliser l'indexation verity, c'est vrai que d'attaquer directement les champs de la base est bien pratique.

  • signaler à un administrateur
    Commentaire de gastoudou le 23/07/2004 13:54:06

    trop bien, malgré que ce soit assez rébarbatif quand on a plusieurs tables avec pas mal de champs, mais merci en tout cas, je ne savais pas trop comment m'y prendre pour faire mon moteur pour le site. tks

  • signaler à un administrateur
    Commentaire de razy le 24/07/2007 17:19:14

    Si jamais la table fait quelques dizaines de milliers de lignes... le LIKE rique d'être bien long.
    Désormais avec MySQL5 tu peux utiliser cette commande là (à condition que tu crées des index en fulltext) :

    SELECT id, body, MATCH (col1,col2) AGAINST ('keywords') AS score
       FROM articles
       WHERE MATCH (col1,col2) AGAINST ('keywords')
       ORDER BY score DESC

    Regarde du côté de http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

Ajouter un commentaire

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS