form con diversi criteri di ricerca

aurora.solari

Nuovo Utente
23 Ott 2009
21
0
0
salve a tutti. sono completamente digiuna sull'argomento asp ma più o meno fin'ora me la sono cavata con i tutorial che si trovano sul web.

adesso vorrei aggiungere al mio sito un form che effettua una ricerca su un database con diversi criteri di ricerca. nn so proprio da dove cominciare e neppure cosa cercare sul web.. :confused:

per spiegarmi meglio.. ho un elenco di 50 tipi di automobili e vorrei che l'utente selezionando per esempio marca / modello / colore potesse accedere ad un elenco di automobili di quella data marca quel dato modello e quel dato colore.

siete a conoscenza di tutorial che mi possono essere utili? vorrei usare un database access e il linguaggio asp appunto..
 
Ciao..se non hai ancora risolto...ti serve una guida su come "popolare query su db access" (similissimo a sql o Mysql).
L'asp ti serve solo ad inviare i moduli con le informazioni da filtrare...
da un form con un campo di testo id="ricerca" fai azione ad una pagina dove db filtra il parametro ricerca e restituisce i ris :D
Più facile a farsi he dire..cmq siamo qui :fonzie:
 
Grazie Majinbu,
nn ci crederai ma nn ho ancora risolto:crying:!!
"fai azione ad una pagina dove db filtra il parametro ricerca e restituisce i ris "

è esattamente questo che nn riesco a fare e nn ne vengo a capo!"
mettiamo per esempio che io abbia questo form:

<form action="risultati.asp" name= "ricerca" method="get">
<select name="trazione">
<option value="Anteriore">Anteriore</option>
<option value="Posteriore">Posteriore</option>
</select>
<select name="lunghezza">
<option value="99" selected>Tutte</option>
<option value="30">Inferiori a 3 Mt.</option>
<option value="18">tra 3 e 5Mt.</option>
<option value="15">superiore a 5Mt</option>
</select>
<input type="submit" name="action" value="Cerca">

Come faccio a far s' che la pagina risultati.asp estrapoli dal database i valori a seconda della scelte delle due select?
 
sono ancora bloccata..
allora nel mio file risultati.asp scrivo questo:

Dim Connection
Dim ConnString
Dim Recordset
Dim SQL
Dim trazione

trazione= Request.QueryString("trazione")

ConnString="driver={Microsoft Access Driver (*.mdb)};dbq="& server.MapPath("/mdb-database/db1.mdb")

SQL = "SELECT * FROM ricerca WHERE (trazione= ????)"

Set Connection = Server.CreateObject("ADODB.Connection")
Set Recordset = Server.CreateObject("ADODB.Recordset")

Connection.Open ConnString

Recordset.Open SQL,Connection

do until recordset.EOF
response.Write Recordset ("nomeauto")
response.Write "<br/>"
Recordset.MoveNext
Loop

Recordset.Close
Set Recordset=nothing
Connection.Close
Set Connection=nothing
%>

premesso che la connessione al db funziona, non so cosa scrivere dove ho messo i ???.
lì dovrebbe esserci il valore selezionato (Anteriore o Posteriore).
qualcuno può aiutarmi?
 
Ciao aurora... non è complicato
dalla query Select * from ricerca.....seleziona tutti i campi della tabbella ricerca...where nome campo = trazione....dove lo specifico campo della tabella che intendi filtrare è = al parametro "trazione"
Quindi prova cosi

SQL = "SELECT * FROM ricerca WHERE nome_campo = '"& trazione &"' "

puoi aggiungere l'ordine secondo il quale mostrare i risultati con
ORDER BY Id .... sempre all'interno della query

dai un'occhiata anche agli operatori sql e forse ti conviene usare
do while not :-)... cerca cicli asp

buon lavoro
 
ora la ricerca funziona.
grazie mille!! :)
ho però un altro problema.
questa select:

SELECT * FROM nome_tabella WHERE nome_campo > 8

nel campo della tabella (access) ci sono valori compresi tra 2 e 12. in questo modo la mia istruzione mi dà tutti i numeri minori di 8 ma anche 10,11,12.
ho intiuto che questo succede perchè nella tabella questi numeri sono riconosciuti come testo. e quindi in ordine alfabetico 12 è "minore" di 8.
se però cambio il tipo dati in numerico in access la select non funziona più. mi dà una pagina vuota.
come posso ovviare al problema?
 
ciao Aurora....
Codice:
SELECT * FROM nome_tabella WHERE nome_campo > 8

nel campo della tabella (access) ci sono valori compresi tra 2 e 12.
:-) questa query deve restituirti ...9,10,11,12 e non n° tra 2 e 7 :-)
Però suppongo che passi il valore da filtrare sempre con una variabile dichiarata in un oggetto.
Per chiarezza ti conviene sempre dichiarare, prima di richiamare la query, gli oggetti es.
PHP:
<% numero= 8 %>
o se la passi da form nell'analogo modo che hai precedentemente usato..numero= Request.QueryString("numero")
quidi la query sarà
"SELECT * FROM nome_tabella WHERE nome_campo > '"& numero &"' "
Non è l'unico modo ma di sicuro è chiaro e semplice.
Riprova e ricontrolla e dati...non dovresti avere prob.
 
buonasera a tutti!
torno sempre sulla solita select...
dunque io ho la mia pagina prova.htm dove metto la select:

<select name="alimentazione">
<option value="benzina">benzina</option>
<option value="diesel">diesel</option>

</select>
<br />
<select name="modello">
<option value="">Seleziona modello</option>
<option value="modello1">modello1</option>
<option value="modello2">modello2</option>
</select>
<br />
<select name="posti">
<option value="99">Seleziona posti</option>
<option value="6">Fino a 6 posti</option>
<option value="8">Fino a 8 posti</option>
<option value="12">Fino a 12 posti</option>
<option value="??">oltre 13 posti</option>

</select>

da prova.asp mi connetto al database con questa istruzione:
SQL = "SELECT * FROM tabella WHERE alimentazione='"& alimentazione &"' AND modello LIKE '%"&modello&"%' AND posti<=" &posti

ho due problemi. il primo è che ovviamente oltre a 13 posti nn funziona e nn so come farlo funzionare perchè sto richiedendo tutti i record <= al numero di posti:crying:

inoltre nn so che valore mettere nel caso "seleziona modelli" o "seleziona posti".
noto che selezionando solamente l'alimentazione e lasciando le altre due select su seleziona modello e seleziona posti nella pagina dei risultati compare molto spazio bianco in alto.
spero di essermi spiegata!
qualcuno sa aiutarmi?
 
A riciao Aurora
Per la query puoi semplicimente risolvere controllando i request con un IF
se dal campo "posti" il valore è <= di 12...la query rimane invariata...
se il valore è > di 12 allora SQL =....AND posti =>'" & posti &"'"
Per la pagina così come descritto...non so :p:p
:byebye:
 
Salve,
anch'io ho un problema simile ma non riesco a venirne a capo.

Come faccio a creare un form di ricerca che prelevi dal database solo i record che corrispondono ad un determinato periodo?

la tabella si chiama appuntamenti mentre il campo della data è datains.
La formula con cui i record vengono memorizzati è gg/mm/aaaa
Quindi le mie date sono del tipo 12/09/2010

Mi basta una ricerca per mesi e pertanto ho un form di ricerca di questo tipo. Poniamo ricerca.html

<form action="esito.asp" method="post" name="ricerca">
<select name="data">
<option value="">Gennaio</option>
<option value="">Febbraio</option>
<option value="">Marzo</option>
<option value="">etc1</option>
<option value="">etc2</option>
</select>
</form>

Che devo inserire nella pagina esito.asp ?
 
mi intrometto anche io :

la query altro non è che una stringa, e come tu ben sai la puoi interrompere con delle variabili prese da delle request.form

se a una request.form fai corrispondere il nome del campo,e un'altra fai corrispondere la clausola where,il gioco è fatto;)
 

Discussioni simili