16 messaggi dal 21 agosto 2002
Salve,
vorrei sapere se è possibile tramite un form html che invia un criterio di ricerca ad una sintassi specificare, oltre che alle keywords anche la tabella del database in cui effettuare l'operazione magari con un menu a tendina oppure dei bottoni...

Di seguio incollo lo script che utilizzo per la ricerca che in questo caso effettua l'operazione solo nella tabella "rece" del mio database

<%
PageName = Request.ServerVariables("PATH_INFO")
SearchMethod = Request.ServerVariables("REQUEST_METHOD")

If SearchMethod = "POST" Then
search = request.form("search")
page = 1
ElseIf SearchMethod = "GET" Then
search = request.QueryString("search")
page = Request.QueryString("page")
End If

respage = 10
%>
<html>
<head>
<title>Ricerca
<% If len(search) > 0 Then %>
"<%=search%>"
<% End If %>
</title>
<style type="text/css">
<!--
.text { font-family: Tahoma, Verdana, Arial, "MS Sans Serif"; font-size: 12px; color: #000033}
.link { font-family: Tahoma, Verdana, Arial, "MS Sans Serif"; font-size: 12px; color: #000066; text-decoration: none}
a.link:link { font-family: Tahoma, Verdana, Arial, "MS Sans Serif"; font-size: 12px; color: #000066; text-decoration: none }
a.link:visited { font-family: Tahoma, Verdana, Arial, "MS Sans Serif"; font-size: 12px; color: #000066; text-decoration: none }
a.link:hover { font-family: Tahoma, Verdana, Arial, "MS Sans Serif"; font-size: 12px; color: #CC0000; text-decoration: underline}
-->
</style>
</head>
<body bgcolor="#FFFFFF" text="#000033" link="#000066" vlink="#000033" alink="#CC0000" leftmargin="1" topmargin="1" marginwidth="1" marginheight="1">
<table width="780" border="0" cellspacing="0" cellpadding="1" align="center" bgcolor="#000033">
<tr>
<td bgcolor="#000033">
<table border="0" cellpadding="2" cellspacing="0" align="center" width="780">
<tr bgcolor="#000033">
<td colspan="2" height="1"></td>
</tr>
<form method="post">
<tr bgcolor="#F3F3F3">
<td width="100" align="left" class="text"><b>Testo Ricerca</b></td>
<td width="680" align="left" class="text">
<input type="text" name="search" size="30" value="<%=search%>">
<input type="submit" value="CERCA" name="submit">
</td>
</tr>
<tr bgcolor="#000033">
<td colspan="2" align="left" class="text" height="1"></td>
</tr>
</form>
<% If SearchMethod = "POST" And len(search) = 0 Then %>
<tr>
<td colspan="2" height="60" align="center" class="text" bgcolor="#FFFFFF"><b>Digitare
un testo per la ricerca</b></td>
</tr>
<tr bgcolor="#000033">
<td colspan="2" height="1"></td>
</tr>
<% End If %>
<%
if len(search) > 0 then

set conn = server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="& server.mappath("db/dbacnews.mdb")

sql = "select * from rece where"

ArrSearch = Split(search)
x = 0
for each Word In ArrSearch

If Not x = UBound(ArrSearch) Then
sql = sql & " corpo like '%" & word & "%' and"
Else
sql = sql & " corpo like '%" & word & "%'"
End If

x = x + 1
Next

set rs = server.createobject("adodb.recordset")
rs.open sql, conn, 1, 3

if rs.eof then
%>
<tr align="center">
<td colspan="2" class="text" height="60" bgcolor="#FFFFFF"><b>Nessun
risultato trovato</b></td>
</tr>
<tr align="center" bgcolor="#000033">
<td colspan="2" class="text" height="1"></td>
</tr>
<%
else

rs.pagesize = respage
rs.absolutepage = page
%>
<tr>
<td colspan="2" class="text" bgcolor="#FFFFFF"><b>Pagina <%=page%>/<%=rs.pagecount%>
- Risultati relativi alla ricerca: "<%=search%>" - Totale documenti
trovati <%=rs.recordcount%></b></td>
</tr>
<tr bgcolor="#000033">
<td colspan="2" class="text" height="1"></td>
</tr>
<tr>
<td colspan="2" bgcolor="#FFFFFF">
<table width="740" border="0" cellspacing="0" cellpadding="2" align="center">
<tr>
<td width="200" valign="top" class="link">
<% If clng(page) > 1 Then %>
<a href="<%=PageName%>?page=<%=page - 1%>&search=<%=Server.UrlEncode(search)%>" class="link"><<
Precedente</a>
<% Else %>
<< Precedente
<% End If %>
</td>
<td width="140" valign="top" class="text"><b> Pagine trovate:
</b></td>
<td width="340" valign="top">
<table widht="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<%
For pag = 1 to rs.pagecount

if clng(page) = pag then
%>
<td width="34" align="right" class="link"><b><%=pag%></b></td>
<% else %>
<td width="34" align="right" class="link"><a href="<%=PageName%>?page=<%=pag%>&search=<%=Server.UrlEncode(search)%>" class="link"><%=pag%></a></td>
<%
end if

If Right(pag,"1") = "0" Then
%>
</tr>
<tr>
<%
End If

Next
%>
</tr>
</table>
</td>
<td width="200" valign="top" class="link" align="right">
<% If clng(page) < rs.pagecount Then %>
<a href="<%=PageName%>?page=<%=page + 1%>&search=<%=Server.UrlEncode(search)%>" class="link">Successivo
>></a>
<% Else %>
Successivo >>
<% End If %>
</td>
</tr>
</table>
</td>
</tr>
<tr bgcolor="#000033">
<td colspan="2" height="1"></td>
</tr>
<%
for i = 1 to respage
if not rs.eof then
%>
<tr bgcolor="#EFEFEF">
<td class="text" valign="top"><b>Titolo</b></td>
<td class="text" valign="top"><b><%=rs("Titolo")%></b></td>
</tr>
<tr bgcolor="#FFFFFF">
<td class="text" valign="top"><b>Descrizione</b></td>
<td class="text" valign="top"><%=Replace(rs("corpo"),vbCrLf,"<br>")%></td>
</tr>
<tr bgcolor="#EFEFEF">
<td class="text" valign="top"><b>URL</b></td>
<td class="link" valign="top"><a href="rece.asp?id=<%=rs("id")%>&sid=<%=session.sessionid%>"><%=rs("titolo")%></a></td>
</tr>
<tr bgcolor="#000033">
<td colspan="2" class="link" height="1"></td>
</tr>
<%
rs.movenext
end if
next
%>
<tr>
<td width="780" colspan="2" bgcolor="#FFFFFF">
<table width="740" border="0" cellspacing="0" cellpadding="2" align="center">
<tr>
<td width="200" valign="top" class="link">
<% If clng(page) > 1 Then %>
<a href="<%=PageName%>?page=<%=page - 1%>&search=<%=Server.UrlEncode(search)%>" class="link"><<
Precedente</a>
<% Else %>
<< Precedente
<% End If %>
</td>
<td width="140" valign="top" class="text"><b> Pagine trovate:
</b></td>
<td width="340">
<table widht="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<%
For pag = 1 to rs.pagecount

if clng(page) = pag then
%>
<td align="right" width="34" class="link"><b><%=pag%></b></td>
<% else %>
<td align="right" width="34" class="link"><a href="<%=PageName%>?page=<%=pag%>&search=<%=Server.UrlEncode(search)%>" class="link"><%=pag%></a></td>
<%
end if

If Right(pag,"1") = "0" Then
%>
</tr>
<tr>
<%
End If

Next
%>
</tr>
</table>
</td>
<td width="200" valign="top" class="link" align="right">
<% If clng(page) < rs.pagecount Then %>
<a href="<%=PageName%>?page=<%=page + 1%>&search=<%=Server.UrlEncode(search)%>" class="link">Successivo
>></a>
<% Else %>
Successivo >>
<% End If %>
</td>
</tr>
</table>
</td>
</tr>
<tr bgcolor="#000033">
<td width="780" colspan="2" height="1"></td>
</tr>
<%
end if
rs.close
set rs = nothing
conn.close
set conn = nothing

end if
%>
</table>
</td>
</tr>
</table>
</body>
</html>



11.886 messaggi dal 09 febbraio 2002
Contributi
Puoi prendere come esempio il modulo di ricerca che è presente qui ad aspitalia. C'è una select con varie opzioni (forum, articoli, components, super search) che specifica la tabella o database in cui andare a cercare i valori.
Non c'è alcuna difficoltà particolare, nel senso che se hai saputo costruire un motore di ricerca, di certo potrai rendere dinamica la tabella su cui cercare.

Non ho letto il tuo codice in quanto la soluzione è universale... avrai un form a cui devi aggiungere una select del genere:

<select name="tabella"><option value="rece">Recensioni</option><option value="articoli">Articoli</option><option value="gallery">Image Gallery</option></select>

Quando invii il forum, basta che recuperi il valore dalla variabile "tabella" e lo integri nella selezione sql:

sql = "SELECT * FROM "&Request.Form("tabella")

Così a seconda di quello che ha scelto l'utente avrai 3 diverse select:

"SELECT * FROM rece"
"SELECT * FROM articoli"
"SELECT * FROM gallery"

Ciaoo

-----------------------
Da una perla dal saggio:
Quando non hai capito, devi dire "non ho capito", no che dici che hai capito e invece non hai capito un cavolo. Hai capito?
-----------------------

Enjoy learning and just keep making
16 messaggi dal 21 agosto 2002
Grazie mille per l'aiuto, avrei però un altro problema sempre in merito allo stesso script. Spiego subito.
Avendo modificato form e sintassi di ricerca in modo che l'utente potesse effettuare una ricerca su più tabelle (che hanno in comune solo i campi sui quali viene effettuata l'interrogazione) mi trovo davanti al problema che quando i dati vengono devono essere visualizzati visualizzati , cliccando sull'url creato, dovrei specificare una pagina con query diverse a seconda della tabella a cui il dato si riferisce.
Ricapitolando: in base alla tabella in cui si effettua la ricerca dovrei specificare un sistema di creazione della pagina, che tra l'altro gia ho, ossia:

Tabella Rece
<a href="rece.asp?id=<%=rs("id")%>&sid=<%=session.sessionid%>"><%=rs("titolo")%></a>
Tabella News
<a href="news.asp?id=<%=rs("id")%>&sid=<%=session.sessionid%>"><%=rs("titolo")%></a>
Tabella Demo
<a href="demo.asp?id=<%=rs("id")%>&sid=<%=session.sessionid%>"><%=rs("titolo")%></a>

ma come posso automatizzare il tutto?



11.886 messaggi dal 09 febbraio 2002
Contributi
mmmh vediamo se ho capito...
vuoi che il link sia diverso a seconda del nome della tabella?
hai fatto bene a chiamare le pagine asp con gli stessi nomi delle tabelle, così te la cavi con una linea di codice:

<a href="<%=Request.Form("tabella")%>.asp?id=<%=rs("id")%>&sid=<%=session.sessionid%>"><%=rs("titolo")%></a>

in questo modo se hai cercato nella tabella "news", il link punterà alla pagina news.asp, e così via...
Era questo?


-----------------------
Da una perla dal saggio:
Quando non hai capito, devi dire "non ho capito", no che dici che hai capito e invece non hai capito un cavolo. Hai capito?
-----------------------

Enjoy learning and just keep making

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.