Come modificare una ricerca nel proprio sito con piu elenchi

gianluigidibell

Utente Attivo
18 Lug 2007
72
0
6
Piacenza
Salve a tutti, come al solito ricorro nel vostro prezioso aiuto.
Dunque ho un classico ricerca nel sito web
dove ognuno mettere la parola chiave e zac, estrae tutti i record.
Fino a qui tutto bene, ma avendo un database ampio ora, avrei la necessita di imporre io i criteri di ricerca, utilizzando 3, 4 elenchi a tendina.
Mi spiego meglio se pensiamo ad una rubbrica, metterei un menu per tutte le citta, un menu per i cognomi un menu per i nomi, e invio per estrarre quel record.
Il mio codice cosi composto:
<form method="get" action="index.asp">
<label>menu
<select name="query1">
<option value="Punzone">Punzoni</option>
<option value="Matrice">Matrice</option>
</select>
</label>
<label>menu2
<select name="query2">
<option value="amada">Amada</option>
<option value="wila">wila</option>
<option value="beyeler">beyeler</option>
</select>
</label>
<input type="submit" value="Cerca">
</form>

<%
Dim testo, query
query=(query1+query2)
testo = Replace(Request.QueryString("query"), "'", "''")
query = Split(Server.HTMLEncode(testo), " ")
If Len(Trim(testo)) = 0 Then
Response.Write "Inserire un testo per la ricerca"
Else
Dim sc, cn, rs, sql
sc = "driver={Microsoft Access Driver (*.mdb)};dbq="
sc = sc & Server.MapPath("\2010_ita\mdb-database\prodotti.mdb")
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open sc
sql = "SELECT * FROM codici WHERE"
For i = 0 To Ubound(query)
If i > 0 Then
sql = sql & " AND"
End If
sql = sql & " Testoprimariga LIKE '%" & query(i) & "%'"
Next
Set rs = cn.Execute(sql)
If rs.EOF Then
Response.Write "Nessun risultato per la ricerca effettuata"
Else
With Response
While rs.EOF = False
.Write "<a href='" & rs("Codice") & "'>" & rs("Testoprimariga") & "</a>"
.Write "&nbsp;" & "<img src= " & rs("url_frazionatinuovi") & " >" & "<br>"
rs.MoveNext()
Wend
End With
End If
Set rs = Nothing
cn.Close()
Set cn = Nothing
End If
%>
come potete vedere ho menu = query 1
menu2 = query 2
ecco il problema se digito
query= (query1+qury2)
mi da il risultato di query 1= pippo& query2=rossi
ecco io invece devo sommare i menu in modo che esca il risultato pippo rossi da cercare
grazie a tutti
 
Luigi rispondo qua.

Questo è il codice che ho provato qui a casa e mi funziona.

Codice:
<form method="post" action="index.asp">
<label>menu
<select name="query1">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
</label>
<label>menu2
<select name="query2">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</label>
<input type="submit" value="Cerca">
<input type="hidden" value="submit" name="submit" />
</form>

<%

If Request.Form("submit") = "submit" Then

Dim testo, query
Dim sc, cn, rs, sql

query1 = Request.Form("query1")
query2 = Request.Form("Query2")

query = query1&query2

If Len(Trim(query)) = 0 Then
	Response.Write "Inserire un testo per la ricerca"
Else
	sc = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/database.mdb")
Set cn = Server.CreateObject("ADODB.Connection")
	cn.Open sc
sql = "SELECT * FROM NOME_TABELLA WHERE NOME_CAMPO LIKE '%"&query&"%'"

Set rs = cn.Execute(sql)
If rs.EOF Then
Response.Write "Nessun risultato per la ricerca effettuata"
Else

With Response
While rs.EOF = False

%>
<%=rs("NOME_CAMPO")%><BR />
<%
rs.MoveNext()
Wend
End With
End If
Set rs = Nothing
cn.Close()
Set cn = Nothing
End If

End If ' chiudo la condizione submit

 %>

devi personalizzarti la connessione:
sc = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/database.mdb")
nella query devi modificare il nome tabella e nome campo:
sql = "SELECT * FROM NOME_TABELLA WHERE NOME_CAMPO LIKE '%"&query&"%'"
ed il nome del campo che vuoi visualizzare come risultato della ricerca:
<%=rs("NOME_CAMPO")%>

Buon divertimento.
 

Discussioni simili