Salve ragazzi ho trovato questo script su HTML.it per mettere un motore di ricerca sul proprio sito collegato a un DB.
Lo scipt va bene solo che mi effettua la ricerca su un solo campo quando io dovrei farla su due o più campi.
Di seguito vi posto il codice originale mentre dopo quello modificato da me.
Io ho modificato l'istruzione SQL in questo modo afficnhe mi prenda in considerazione anche il campo descrizione ma a questo punto qualunque valore inserisco nella ricerca mi dice che non esiste.codice:<%@LANGUAGE = JScript%> <% /* Autore: Luca Ruggiero - http://www.lukeonweb.net Fonte: freeAsp.it - http://freeasp.html.it */ // ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- /* ISTALLAZIONE DELLO SCRIPT :: Lo script è un semplice esempio su come è possibile effettuare una ricerca tramite una pagina Asp ed un modulo Html su di una tabella di un Database. Non importa il contenuto della tabella, si può trattare sia di dati interni al sito che di una raccolta di siti esterni, sia di file da scaricare... il procedimento è sempre lo stesso! :: Per realizzare l'esempio ho supposto che il modulo di ricerca sia presente solo nella pagina cerca.asp ma è possibile prendere il codice Html del <form> ed importarlo in qualsiasi pagina del sito, purchè il metodo di ricerca sia sempre il "post" ed il file a cui punta l'"action" sia cerca.asp :: L'interfaccia è molto semplice, se vogliamo simile a quella di Google, ed i blocchi di script sono divisi in due parti: 1) La parte sopra l'inizio del codice <html> della pagina sono di inizializzazione; viene creata anche la stringa di ricerca Sql per l'occasione, e può restare dov'è! 2) La parte nel <body> della pagina comprende il motore di ricerca ed il codice Html per restituire a video i risultati, il tutto facilmente personalizzabile stilisticamente. */ // ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- Response.Buffer = true; var Cn = new ActiveXObject("ADODB.Connection"); Cn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("mdb-database/cerca.mdb")); var testo = new String(Server.HTMLEncode(Request.Form("cerca"))); var r_testo = testo.replace(/'/g,"''"); var cerca = r_testo.split(" "); // Tutte le parole chiave devono essere separate da uno spazio vuoto var sql = "SELECT * FROM risultati WHERE "; for (var i=0; i<cerca.length; i++) { if (i > 0) sql += " AND"; sql += " parole_chiave LIKE '%" + cerca[i] + "%'"; } sql += " ORDER BY titolo"; var Mostra = Cn.Execute(sql); %> <html> <head> <title>Cerca</title> <basefont size="2" face="Verdana"> </head> <body link="Blue" alink="Red" vlink="Blue"> <h3> Cerca <form method="post" action="cerca.asp"> <input type="text" name="cerca" size="50" value="<%cerca != "undefined" ? Response.Write(testo) : Response.Write("")%>"> <input type="submit" value="Cerca"> </form> </h3> <%if (testo != "undefined") {%> Risultati della ricerca per il termine <font color="Red"><%=testo%></font></p> <% if (testo == "" || testo == "undefined" || testo.charAt(0) == " ") { Response.Write(" Inserire un termine per effettuare una ricerca</p>"); } else if (Mostra.EOF) { Response.Write(" Nessun risultato</p>"); } else { while (!Mostra.EOF) { with (Response) { Write(" "); Write("" + Mostra("titolo") + " "); Write(Mostra("descrizione") + " "); Write("<font color='Green'>" + Mostra("url") + "</font>"); Write("</p>"); } Mostra.MoveNext(); } } %> <%}%> </body> </html> <%Cn.Close()%>
Non riesco a capure perchè non mi restituiesce nessun valore.codice:Response.Buffer = true; var Cn = new ActiveXObject("ADODB.Connection"); Cn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("mdb-database/cerca.mdb")); var testo = new String(Server.HTMLEncode(Request.Form("cerca"))); var r_testo = testo.replace(/'/g,"''"); var cerca = r_testo.split(" "); // Tutte le parole chiave devono essere separate da uno spazio vuoto var sql = "SELECT * FROM risultati WHERE "; for (var i=0; i<cerca.length; i++) { if (i > 0) sql += " AND"; sql += " parole_chiave LIKE '%" & "descrizione LIKE '%" + cerca[i] + "%'"; } sql += " ORDER BY titolo"; var Mostra = Cn.Execute(sql); %>
pote darmi una mano?

Rispondi quotando
