asp - asp.net - aspcode.it
Domande sul forumCerca un argomento nel forum
Vai a :



Forum - Active Server Pages

Visualizzare menu solo se c'è dato

klinik
scritto il 20/10/2010 14:30:36

Messaggi Scritti : 118

Salve, ho un database con delle tipologie di prodotti, ho il menu che mi estrae dal database
la lista categorie:

Caschi
Guanti
Giacche

ecc... questo il codice

<%
sezione = Request.QueryString("sezione")
categoria = Request.QueryString("cat")
marche = Request.QueryString("marche")
attivo = Request.QueryString("attivo")
home = Request.QueryString("home")

ordine = "categoria"

set conn = server.createobject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "

' in locale
DSNtemp=dsntemp & "DBQ=" & server.mappath("gestione/database.mdb")

conn.Open DSNtemp
sqlstmt = "SELECT * FROM categoria order by " & ordine
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sqlstmt, conn, 3, 3
TotalRecs = rs.recordcount
x = 0
For x = 1 to 100
If rs.eof then
Exit For
Else

id = rs("id")
categoria = rs("categoria")
%>

<table border=0 class=testo bordercolor="#000000" style="border-collapse: collapse" cellpadding="0" cellspacing="0" height="20">
<tr>
<td>

<li><a href="prodotti.asp?sezione=<%=sezione%>&cat=<%=categoria%>"><%=categoria%></a>

</td>
</tr>
</table>

<%
rs.MoveNext
End If
Next
%>

il problema è che mi mostra la categoria anche se non c'è dentro niente, vorrei che mostrasse la categoria solo se c'è qualcosa nel database relativo a quella categoria.

Ho pensato ad un conteggio dei records, ho trovato lo script ma non saprei integrarlo:

<%

'rilevo il path del database
Dim dbPath
dbPath = Server.MapPath("gestione/Database.mdb")

'connessione al database
Dim cn, rs, sql
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source="&dbpath

'eseguo la SQL per contare i record
sql = "SELECT COUNT(marche) AS RECORD_COUNT FROM annunci"

Set rs = cn.Execute(sql)

'visualizzo il numero di record della tabella
Response.Write("La tabella contiene "&rs("RECORD_COUNT")&" prodotti")

'chiudo recordset e connessione e libero le risorse
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
%>

Spero che qualcuno mi risolva l'emigma...

Gab

Inviva una mail a klinik

klinik
scritto il 20/10/2010 16:46:33

Messaggi Scritti : 118

Ho risolto così:


<%
Response.Buffer = true
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1
Response.AddHeader "cache-control", "private"
Session.LCID = 1040 '::::::::::::::::::::::::::::::::::::: Datata e ora Italiana


'::::::::::::::::::::::::: Connessione database.mdb

Conn_String = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database.mdb")

Set conn = Server.CreateObject("ADODB.Connection")
conn.open Conn_String


sql = "select * from categoria order by Categoria asc"
set rst = Conn.Execute (sql)

Do While Not rst.EOF


Categoria= rst("categoria")
sqlcount = "SELECT count(categoria) FROM annunci where Categoria='" & rst("categoria") & "' "
Set RScounts = Conn.Execute(sqlcount)
rcounts = RScounts(0)

%>


<% If rcounts<>0 then %>

<li><%=rst("categoria")%></a>


<%
Response.Write ("(" & rcounts & ")")
Response.Write "<br>"
%>


<% end if %>


<%
rst.MoveNext
loop
%>

Gab

Inviva una mail a klinik
  Pagina :  ]1[ 
Rispondi alla Discussione  
ASPCode Forum v.2.7b    

Ciao , oggi è il 23/11/2017, e sono le ore 06:20:21
In questo momento ci sono 0 utenti on-line e 4443 ospiti.
Messaggi inseriti oggi: 0
Totale argomenti inseriti: 8121
Totale messaggi inseriti: 28060
ArgomentoAttivo.
Argomento Chiuso.
Argomento Nuovo.
Totale utenti registrati : 10987
Ultimo utente registrato : ta69
Non sei loggato al forum, se vuoi farlo clicca qui, se non sei ancora registrato al forum e vuoi farlo clicca qui.

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 4443
AspIn.com
Utilità
Link

Utenti connessi: 4443