Ciao, avrei bisogno di una mano. Ho un database di nome archivio.mdb con una tabella tbl_leggi, nella quale ci sono diversi campi: tipo, giorno, mese, anno, titolo. Ho creato un form:

<form action="risultati.asp" method="POST">
<FONT face="Verdana, Arial, Helvetica, sans-serif"
size=2><B><font color="#FFCC00">Tipologia</font></B><font color="#FF9900"><BR>
<SELECT size=1 name=tipo>
<OPTION value=0 selected>
<OPTION value=AVVISO>Avviso
<OPTION value="CIRC. MIN.">Circolare Ministeriale
<OPTION value="CIRC. M.A.">Circ. Ministro dell'ambiente
<OPTION value="CIRC. P.C.M.">Circ. Pres. Cons. dei Ministri
<OPTION value=COM.>Comunicazione
<OPTION value=COST.>Costituzione Italiana
<OPTION value=D.DIRIG.>Decreto Dirigenziale
<OPTION
value=D.L.>Decreto Legge
<OPTION value=D.Lgs.>Decreto Legislativo
<OPTION
value="D.Lgs. C.P.S.">D. Lgs. Capo Provvisorio Stato
<OPTION
value="D.Lgs. L.le">D. Lgs. Luogotenenziale
<OPTION value=D.M.>Decreto Ministeriale
<OPTION value=D.P.C.M.>Decr. Pres. Cons. dei Ministri
<OPTION
value=D.P.R.>Decr. Pres. della Repubblica
<OPTION
value=DEL.>Deliberazione
<OPTION value="DEL. C.I.P.E.">Deliberazioni C.I.P.E.
<OPTION value="DEL. CORTE COST.">Delibera Corte Costituzionale
<OPTION value=DET.>Determinazione
<OPTION
value="DIR. P.C.M.">Direttiva Pres. Cons. dei Ministri
<OPTION
value=L.>Legge
<OPTION value=L.C.>Legge Costituzionale
<OPTION
value=O.M.>Ordinanza Ministeriale
<OPTION value=ORD.>Ordinanza
<OPTION
value=O.P.C.M.>Ordinanze Pres. del Cons. dei Ministri
<OPTION
value=P.C.M.>Pres. del Cons. dei Ministri
<OPTION
value=PROVV.>Provvedimento
<OPTION value="REG. CAMERA DEI DEPUTATI">Reg. della Camera dei
Deputati
<OPTION value="REG. SENATO">Regolamento del Senato
<OPTION value=R.D.>Regio decreto
<OPTION value=R.D.L.>Regio decreto legge
<OPTION value=R.D.Lgs.>Regio decreto legislativo</OPTION>
</SELECT>
<BR>
<BR>
<IMG height=2 src="ricerca_file/vuoto.gif" width=1><BR>
<B><font color="#FFCC00">Data emanazione</font></B><BR>
<SELECT name=giorno>
<OPTION value=0 selected>
<OPTION>1
<OPTION>2
<OPTION>3
<OPTION>4
<OPTION>5
<OPTION>6
<OPTION>7
<OPTION>8
<OPTION>9
<OPTION>10
<OPTION>11
<OPTION>12
<OPTION>13
<OPTION>14
<OPTION>15
<OPTION>16
<OPTION>17
<OPTION>18
<OPTION>19
<OPTION>20
<OPTION>21
<OPTION>22
<OPTION>23
<OPTION>24
<OPTION>25
<OPTION>26
<OPTION>27
<OPTION>28
<OPTION>29
<OPTION>30
<OPTION>31</OPTION>
</SELECT>
<SELECT name=mese>
<OPTION value=0 selected>
<OPTION
value=1>gennaio
<OPTION value=2>febbraio
<OPTION value=3>marzo
<OPTION
value=4>aprile
<OPTION value=5>maggio
<OPTION value=6>giugno
<OPTION
value=7>luglio
<OPTION value=8>agosto
<OPTION value=9>settembre
<OPTION
value=10>ottobre
<OPTION value=11>novembre
<OPTION
value=12>dicembre</OPTION>
</SELECT>
<SELECT name=anno>
<OPTION value=0
selected>
<OPTION>2003
<OPTION>2002
<OPTION>2001
<OPTION>2000
<OPTION>1999
<OPTION>1998
<OPTION>1997
<OPTION>1996
<OPTION>1995
<OPTION>1994
<OPTION>1993
<OPTION>1992
<OPTION>1991
<OPTION>1990
<OPTION>1989
<OPTION>1988
<OPTION>1987
<OPTION>1986
<OPTION>1985
<OPTION>1984
<OPTION>1983
<OPTION>1982
<OPTION>1981
<OPTION>1980
<OPTION>1979
<OPTION>1978
<OPTION>1977
<OPTION>1976
<OPTION>1975
<OPTION>1974
<OPTION>1973
<OPTION>1972
<OPTION>1971
<OPTION>1970
<OPTION>1969
<OPTION>1968
<OPTION>1967
<OPTION>1966
<OPTION>1965
<OPTION>1964
<OPTION>1963
<OPTION>1962
<OPTION>1961
<OPTION>1960
<OPTION>1959
<OPTION>1958
<OPTION>1957
<OPTION>1956
<OPTION>1955
<OPTION>1954
<OPTION>1953
<OPTION>1952
<OPTION>1951
<OPTION>1950
<OPTION>1949
<OPTION>1948
<OPTION>1947
<OPTION>1946
<OPTION>1945
<OPTION>1944
<OPTION>1943
<OPTION>1942
<OPTION>1941
<OPTION>1940
<OPTION>1939
<OPTION>1938
<OPTION>1937
<OPTION>1936
<OPTION>1935
<OPTION>1934
<OPTION>1933
<OPTION>1932
<OPTION>1931
<OPTION>1930
<OPTION>1929
<OPTION>1928
<OPTION>1927
<OPTION>1926
<OPTION>1925
<OPTION>1924
<OPTION>1923
<OPTION>1922
<OPTION>1921
<OPTION>1920
<OPTION>1919
<OPTION>1915
<OPTION>1911
<OPTION>1908
<OPTION>1904
<OPTION>1901
<OPTION>1895
<OPTION>1891
<OPTION>1890
<OPTION>1885
<OPTION>1884
<OPTION>1865
<OPTION>1864
<OPTION>1850</OPTION>
</SELECT>
<BR>
<BR>
<IMG height=2 src="ricerca_file/vuoto.gif" width=1><BR>
<B><font color="#FFCC00">Legge numero</font></B><font color="#FFCC00"><BR>
<INPUT maxLength=6 size=10 name=numero>
<BR>
<BR>
<IMG
height=2 src="ricerca_file/vuoto.gif" width=1><BR>
<B>Parole nel titolo</B><font size="1" color="#FFFFFF">: non è possibile
utilizzare operatori logici. Se si inseriscono più parole vengono
considerate unite dall'operatore AND</font><BR>
<INPUT name=titolo>
</font></font></FONT>
<P><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFCC00">
<INPUT
type=hidden value=1 name=c_start>
<INPUT type=hidden value=100 name=c_end>
<INPUT type=hidden value=100 name=inc>
<INPUT type=reset value=Cancella name="">
<input type="submit" name="Button" value="Ricerca" >
</font>
</FORM>


e una pagina risultati.asp:

<%
'collegamento con il database

set conn = Server.CreateObject("ADODB.Connection")
conn.provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(server.mappath("../mdb-database/archivio.mdb"))

set ris = Server.CreateObject("ADODB.Recordset")
ris.open "tbl_leggi",conn,3,3

'ricezione dati dal form
set tipo=request.form("tipo")
set giorno=request.form("giorno")
set mese=request.form("mese")
set anno=request.form("anno")
set numero=request.form("numero")
set titolo=request.form("titolo")

strsql = "SELECT * FROM tbl_leggi WHERE campo LIKE '% " & tipo & " %' "
Set Rs = Conn.Execute(strsql)
If Rs.EOF Then
Response.Write "Non ci sono dati disponibili!"
Else

' i dati ci sono e li leggiamo con un ciclo di lettura fino all'ultimo
Do Until Rs.EOF

temp = temp & "<br><font face='Impact' color='#000066'> Inserito il </font>" & Rs("tipo") & "<font face='Impact' color='#000066'>, guarda la </font>" & "<a target='_blank' href='http://www.marcogame.net/demo/" & Rs("prova") & "'>" & "demo" & "</a>" & "<font face='Impact' color='#000066'> preleva il </font>" & "<a target='_blank' href='http://www.marcogame.net/download/" & Rs("titolo") & "'>" & ".fla" & "</a>" & "<br><font face='Impact' color='#000066'> Descrizione: </font>" & Rs("descrizione") & "<br>"
' ci spostiamo al prossimo record
Rs.MoveNext

' ripetiamo il ciclo
Loop
End If

' chiudiamo gli oggetti e ripuliamo la memoria
Rs.Close
Set Rs = Nothing
Conn.Close
Set Conn = Nothing
%><font color="#FFFFFF">dati1=</font><%=temp%>

ma non funziona. Done sbaglio? Io vorrei che mi cercasse anche se uno inserisce un solo campo, tirasse fuori tutto quello che trova.

Grazie mille!
181 messaggi dal 06 luglio 2001
Credo che dovresti essere piu' preciso e indicare che errore ti da, a che riga, che prove hai fatto.
Postare solo duecento righe di codice mette in difficoltà chi ti vuole aiutare e difficilmente riceverai una risposta.

Una cosa che mi ha colpito e vorrei consigliarti è di non scrivere a mano 30 numeri consecutivi per le options di una select, ma farlo con un ciclo for lato server.

Cioè non:

<OPTION value=0 selected>0</OPTION>
<OPTION value=1>1</OPTION>
<OPTION value=2>2</OPTION>
.... e così via fino a 31....

Ma semplicemente:

<%for i = 1 to 31%>
<OPTION value=<%=i%>><%=i%></OPTION>
<%next%>

Ciao
Baxeico

-- Sciusciá e sciurbí nu se pö --
2.584 messaggi dal 14 maggio 2001
Scusatemi se mi inserisco... per rendere il tutto più performante consiglio:

<%
for i = 1 to 31
response.write "<OPTION value=""" & i & "">" & i & "</OPTION>"
next
%>
Mi dice sempre che "Non ci sono datui disponibili" (anche se non è vero). Deve essere sbagliata la parte della mia pagina asp

temp = temp & "<br><font face='Impact' color='#000066'> Inserito il </font>" & Rs("strsql") & "<font face='Impact' color='#000066'>, guarda la </font>" & "<a target='_blank' href='http://www.marcogame.net/demo/" & Rs("strsql") & "'>" & "demo" & "</a>" & "<font face='Impact' color='#000066'> preleva il </font>" & "<a target='_blank' href='http://www.marcogame.net/download/" & Rs("strsql") & "'>" & ".fla" & "</a>" & "<br><font face='Impact' color='#000066'> Descrizione: </font>" & Rs("strsql") & "<br>"
' ci spostiamo al prossimo record
Rs.MoveNext

anvhe perché non l'ho capita bene.
2.584 messaggi dal 14 maggio 2001
Ti consiglio di scrivere il codice così:

Do Until Rs.EOF

response.write "<br><font face='Impact' color='#000066'> Inserito il </font>" & Rs("tipo") & "<font face='Impact' color='#000066'>, guarda la </font>" & "<a target='_blank' href='http://www.marcogame.net/demo/" & Rs("prova") & "'>" & "demo" & "</a>" & "<font face='Impact' color='#000066'> preleva il </font>" & "<a target='_blank' href='http://www.marcogame.net/download/" & Rs("titolo") & "'>" & ".fla" & "</a>" & "<br><font face='Impact' color='#000066'> Descrizione: </font>" & Rs("descrizione") & "<br>"
' ci spostiamo al prossimo record
Rs.MoveNext

' ripetiamo il ciclo
Loop

usando il response.write al posto di memorizzare tutto in una variabile.
Esiste un problema su Vbscript che causa una caduta delle prestazioni ogni volta che si prende una variabile e le si concatena un valore.

Per l'altro problema prova a scrivere il contenuto della stringa strsql
response.write strsql = "SELECT * FROM tbl_leggi WHERE campo LIKE '% " & tipo & " %' "
Cosa ti dà?

Ho fatto le modifiche che mi hai scritto e aggiunto qualcosa, ma ancora nulla. Ti rimando la pagina attuale. Mi dice sempre che non trova i dati:

<%
'collegamento con il database

set conn = Server.CreateObject("ADODB.Connection")
conn.provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(server.mappath("../mdb-database/archivio.mdb"))

set ris = Server.CreateObject("ADODB.Recordset")
ris.open "tbl_leggi",conn,3,3

'ricezione dati dal form
set tipo=request.form("tipo")
set giorno=request.form("giorno")
set mese=request.form("mese")
set anno=request.form("anno")
set numero=request.form("numero")
set titolo=request.form("titolo")
set titolo=request.form("url")

strsql = "SELECT * FROM tbl_leggi WHERE tipo LIKE '% " & tipo & " %' AND giorno LIKE '% " & giorno & " %' AND mese LIKE '% " & mese & " %' AND anno LIKE '% " & anno & " %' AND numero LIKE '% " & numero & " %' AND titolo LIKE '% " & titolo & " %' AND url LIKE '% " & url &"%' "
Set Rs = Conn.Execute(strsql)
If Rs.EOF Then
Response.Write "Non ci sono dati disponibili!"
Else

' i dati ci sono e li leggiamo con un ciclo di lettura fino all'ultimo
Do Until Rs.EOF

Do Until Rs.EOF

response.write "<br><font face='Impact' color='#000066'> Trovato </font>" & Rs("tipo") & "<font face='Impact' color='#000066'>, del </font>" & Rs("giorno") & "<font face='Impact' color='#000066'>, / </font>" & Rs("mese") & "<font face='Impact' color='#000066'>, / </font>" & Rs("anno") & "<font face='Impact' color='#000066'>, - n° </font>" & Rs("numero") & "<font face='Impact' color='#000066'>. Titolo: </font>" & Rs ("titolo") & "<font face='Impact' color='#000066'>. Download: </font>" & Rs ("url") & "<br>"
' ci spostiamo al prossimo record
Rs.MoveNext


' ripetiamo il ciclo
Loop


' ripetiamo il ciclo
Loop
End If

' chiudiamo gli oggetti e ripuliamo la memoria
Rs.Close
Set Rs = Nothing
Conn.Close
Set Conn = Nothing
%><font color="#FFFFFF">dati1=</font><%=temp%>
2.584 messaggi dal 14 maggio 2001
Basta un solo loop " Do Until Rs.EOF ...."
Inserisci sulla pagina questa riga e ci mandi il risultato sul forum?

response.write strsql

così potremmo capire che tipo di ricerca stai facendo sul Db.

Questa riga è inutile:
<font color="#FFFFFF">dati1=</font><%=temp%>
Perché la variabile temp non la utilizzi più...
Basta un solo loop " Do Until Rs.EOF ...." ELIMINATO!!
Inserisci sulla pagina questa riga e ci mandi il risultato sul forum?

response.write strsql NON HO CAPITO!

così potremmo capire che tipo di ricerca stai facendo sul Db.


Questa riga è inutile:
<font color="#FFFFFF">dati1=</font><%=temp%>
Perché la variabile temp non la utilizzi più... GIUSTO FATTO!!

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.