68 messaggi dal 28 settembre 2004
Ho scaricato questo script che funziona perfettamente:

------------------------------------------------------------------------------

<%@LANGUAGE = JScript%>
<%

Response.Buffer = true;
var Cn = new ActiveXObject("ADODB.Connection");
Cn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("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>
<b>Cerca</b>
<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") {%>
<p><b>Risultati della ricerca per il termine <font color="Red"><%=testo%></font></b></p>
<%
if (testo == "" || testo == "undefined" || testo.charAt(0) == " ")
{
Response.Write("<p>Inserire un termine per effettuare una ricerca</p>");
}
else if (Mostra.EOF)
{
Response.Write("<p>Nessun risultato</p>");
}
else
{
while (!Mostra.EOF)
{
with (Response)
{
Write("<p>");
Write("<a href='" + Mostra("url") + "' target='_blank'>" + Mostra("titolo") + "</a><br>");
Write(Mostra("descrizione") + "<br>");
Write("<font color='Green'>" + Mostra("url") + "</font>");
Write("</p>");
}
Mostra.MoveNext();
}
}
%>
<%}%>

</body>
</html>
<%Cn.Close()%>

------------------------------------------------------------------------------
Come vedete la ricerca viene fatta sulla sola tabella "risultati" del db "cerca.mdb".
Ma se volessi fare una ricerca su più tabelle, uguali nella struttura ma differenti nel contenuto, come posso fare??
Pensavo che si potesse aggiungere le altre tabelle nella stringa:

var sql = "SELECT * FROM risultati WHERE ";

ma nonostante tutte le prove fatte, la cosa non funziona.

cerimapd
225 messaggi dal 22 maggio 2001
Fatti una vista con tutte le tabelle che ti servono ed esegui al ricerca su quella.

Ciao
Andrea
68 messaggi dal 28 settembre 2004
Cosa vuol dire "fatti una vista"?
Magari se mi fai un esempio riesco a capire meglio. Guazie.

cerimapd
68 messaggi dal 28 settembre 2004
Possibile che nessuno riesca ad aiutarmi?
Forse il problema non è di facile risoluzione?

cerimapd

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.