- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- Estrarre record Db Access con Asp Classico
-
Estrarre record Db Access con Asp Classico
Buonasera forum, poco esperto sono alle prese con una pagina asp che è un motore di ricerca del sito.
Nel tentativo di migliorarla, sono diversi le cose che ho in mente, ho aggiunto una colonna per creare un filtro e messo il codice corrispondente <%=rsSearch("categoria_notizia")%> che mi estrae solo un valore, il primo.
Certo di poter contare sul vostro supporto posto il codice della pagina risultati.asp, l'altra cerca.asp contiene solo il form.
Chissà se sono stato chiaro, grazie.<%Dim srch,currentpage,total,RecordsPerPage,pages,rs1,rs2,u
currentpage = Request.QueryString("currentpage")
IF currentpage ="" OR currentpage < 1 Then
currentpage = 1
END IF
srch = Request.QueryString("srch")
RecordsPerPage = 10
%><%
Dim Connect, dbconn
Connect="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/mdb-database/news.mdb")
Set dbconn=Server.CreateObject("ADODB.Connection")
dbconn.open Connect
%><%
Dim sqlcerca,rsSearch
sqlcerca = "SELECT * FROM prodotti WHERE notizia_breve Like '%" & srch & "%' ORDER BY ID DESC"
Set rsSearch = Server.CreateObject("ADODB.Recordset")
rsSearch.Open sqlcerca, dbconn, 3, 3
IF srch = "" Then
total = "0"
ELSE
total = rsSearch.RecordCount
END IF
%><table>
<tr>
<td>filtra i risultati<%=rsSearch("categoria_notizia")%><br></td>
<td>
<table>
<tr>
<td colspan="7">Hai cercato :<b> <i>"<%=srch%>" </i> </b>. La ricerca ha prodotto<b> <%=total%>
</b>risultati<br> </font></td>
</tr>
</table>
</div>
<%
pages = int(total/RecordsPerPage)
IF (total MOD RecordsPerPage) <> "0" Then
pages = pages + 1
END IF
rs2 = int(currentpage*RecordsPerPage)
rs1 = int(rs2-RecordsPerPage+1)
%><table width="800">
<tr>
<td>Risultati <%=rs1%> di <%IF int(currentpage) = int(pages) Then%><%=total%><%ELSE%><%=rs2%> <%END IF%></td>
<td>
<%IF currentpage = "1" Then%>INDIETRO<%ELSE%><a href="?srch=<%=srch%>¤tpage=<%=currentpage-1%>">INDIETRO</a><%END IF%> | Pagina <%=currentpage%> di <%=pages%> | <%IF int(currentpage) < int(pages) Then%><a href="?srch=<%=srch%>¤tpage=<%=currentpage+1%>">AVANTI</a><%ELSE%>AVANTI<%END IF%>
</td>
</tr>
</table>
<form name="config" action="cerca_prodotto_risultati.asp" method="get">
<table>
<tr>
<td>Cerca nel Sito<input type="text" name="srch" value="<%=srch%>" size="40"> <input type="submit" value="Inizia la ricerca"></td>
</tr>
</table>
</form>
<table>
<tr>
<td>Hai cercato : <i>"<%=srch%>" </i></td>
<td><b>Totale dei risultati trovati: <%=total%> </b>
</td>
</tr>
</table>
<br><%IF srch = "" Then%>
<table>
<tr>
<td><center><b>Non hai inserito alcuna parola chiave.</b></center></td>
</tr>
<%ELSE%><%
rsSearch.PageSize = RecordsPerPage
If NOT rsSearch.EOF Then rsSearch.AbsolutePage = currentpageIf rsSearch.EOF Then
%>
<tr>
<td><center><b>Siamo spiacenti, non siamo in grado di trovare i risultati di ricerca per qualsiasi <i>"<%=srch%>"</i>.</b></center></td>
</tr>
</table><%Else
For u=1 to RecordsPerPage
IF rsSearch.EOF Then Exit For%>
<table>
<tr>
<td><br><%=rsSearch("titolo_news")%><br><%=Left(descrizione,255)%></td>
</tr><% rsSearch.movenext
Next%></table>
</table>
</td>
</tr>
</table></div>
<%END IF%>
<%END IF%>
-
forse sono sulla buona strada:
<%Do While Not rsSearch.Eof
Response.Write rsSearch("categoria_notizia")&"<br>"
rsSearch.MoveNext
Loop%>
però scorrendo il codice: La ricerca ha prodotto<b> <%=total%> risultati
la successiva risposta è : Siamo spiacenti, non siamo in grado di trovare i risultati di ricerca per qualsiasi "accordo".
come posso risolvere?
-
Ciao brontolone, nel DB news.mdb, nella tabella prodotti, esistono record che nella colonna notizia_breve hanno la parola "accordo"?
-
Ciao artcava, grazie per la risposta.
Si, ci sono 46 record
-
Buonasera in assenza di risposte, ahimé, forse è il caso di pensare che non ho saputo spiegare cosa vorrei ottenere dalla pagina. Ci riprovo!
La pagina con il codice postato estrae nel ciclo i risultati richiesti.:<%Else
For u=1 to RecordsPerPage
IF rsSearch.EOF Then Exit For%><%=rsSearch("titolo_news")%><br><%=Left(de scrizione,255)%>
<% rsSearch.movenext
Next%>Se all?interno dello stesso chiedo di estrarre la categoria delle notizie con : <%=rsSearch("categoria_notizia")%> la pagina risponde e ottengo il risultato richiesto.
Se la stessa porzione la metto fuori dal ciclo in unaltra colonna, mi estrae solo il primo risultato. Io, invece, vorrei ottenere al di fuori del ciclo i risultati univoci delle categorie del tipo:accordi (3)
comunicati stampa (5)
verbali (10)
rinnovi (7)in modo da ottenere un filtro sulla ricerca dei risultati che spesso sono troppi e simili.
Spero, questa volta, di aver chiarito bene il concetto.
-
me la suono e me la canto da solo, posto come ottengo i risultato:
<%
dim ctgnotiziaRS
Set ctgnotiziaRS = Server.CreateObject("ADODB.Recordset")
ctgnotiziaRS.Open sqlcerca, cn, 3, 3
Do While Not ctgnotiziaRS.EOF
%>
<%=ctgnotiziaRS("categoria_notizia")%><br>
<%
ctgnotiziaRS.movenext
loop
ctgnotiziaRS.close
set ctgnotiziaRS=Nothing
%>manca soltanto il modot di trovare il numero dei record che mi restituisce:
<%=ctgnotiziaRS("categoria_notizia")%> (????) <br>qualcuno può aiutarmi?