Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di klinik
    Registrato dal
    Mar 2003
    Messaggi
    140

    Visualizzare menu solo se c'è dato

    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>
    [*]<%=categoria%>

    </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

  2. #2
    se RECORD_COUNT > 0 mostra altrimenti vai avanti

  3. #3
    Utente di HTML.it L'avatar di klinik
    Registrato dal
    Mar 2003
    Messaggi
    140
    Ciao, 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 %>
    [*]<%=rst("categoria")%></a>


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


    <% end if %>


    <%
    rst.MoveNext
    loop
    %>

    Grazie
    Gab

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.