[ASP] impaginazione record database

Discussione in 'Classic ASP' iniziata da ghis, 2 Agosto 2017.

  1. ghis

    ghis Nuovo Utente

    Registrato:
    2 Agosto 2017
    Messaggi:
    7
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Buonasera,
    sono nuovo del forum.
    Sto creando una pagina di elenco articoli recuperandoli da database access
    La pagina funziona ma in questo modo mi mette gli articoli uno sotto l'altro. io vorrei metterli uno di fianco all' altro 3 alla volta con massimo 9 per pagina
    Di seguito il codice.
    Grazie

    HTML:
    <!--#include file="adovbs.inc"-->
    <% 'Estrazione pagina corrente
    If Request.QueryString("page") = "" Then
        iPageCurrent = 1
    Else
        iPageCurrent = CInt(Request.QueryString("page"))
    End If%>
    <BODY background="immagini/fondale2.jpg">   <table border="0" width="100%" id="table22" cellspacing="0" cellpadding="0">
    <%
    If Len(Session("aperta")) > 0 Then
    Else
    Session("aperta") = "ok"
    Session.LCID = 1040
    Dim QuantiArticoliInScontrino
    Dim ScontrinoInScontrino()
    Dim ScontrinoIDArticolo()
    Dim ScontrinoCodiceArticolo()
    Dim ScontrinoDenominazioneArticolo()
    Dim ScontrinoConfezioneArticolo()
    Dim ScontrinoQuantitativoArticolo()
    Dim ScontrinoPrezzoArticolo()
    Dim NOITEMSINSHOPPINGBASKET
    Dim TOOMANYITEMSINSHOPPINGBASKET
    Dim INFO_NOITEMSINSHOPPINGBASKET
    Dim INFO_TOOMANYITEMSINSHOPPINGBASKET
    QuantiArticoliInScontrino = 0
    NOITEMSINSHOPPINGBASKET = True
    TOOMANYITEMSINSHOPPINGBASKET = False
    INFO_NOITEMSINSHOPPINGBASKET = "Il tuo carrello è vuoto."
    INFO_TOOMANYITEMSINSHOPPINGBASKET = "Il carrello contiene troppi articoli..."
    Session("QuantiArticoliInScontrino") = QuantiArticoliInScontrino
    Session("ScontrinoInScontrino") = ScontrinoInScontrino
    Session("ScontrinoIDArticolo") = ScontrinoIDArticolo
    Session("ScontrinoCodiceArticolo") = ScontrinoCodiceArticolo
    Session("ScontrinoDenominazioneArticolo") = ScontrinoDenominazioneArticolo
    Session("ScontrinoQuantitativoArticolo") = ScontrinoQuantitativoArticolo
    Session("ScontrinoConfezioneArticolo") = ScontrinoConfezioneArticolo
    Session("ScontrinoPrezzoArticolo") = ScontrinoPrezzoArticolo
    Session("NOITEMSINSHOPPINGBASKET") = NOITEMSINSHOPPINGBASKET
    Session("TOOMANYITEMSINSHOPPINGBASKET") = TOOMANYITEMSINSHOPPINGBASKET
    Session("INFO_NOITEMSINSHOPPINGBASKET") = INFO_NOITEMSINSHOPPINGBASKET
    Session("INFO_TOOMANYITEMSINSHOPPINGBASKET") = INFO_TOOMANYITEMSINSHOPPINGBASKET
    Dim IDUtente
    Dim SchedaClienteNome
    Dim SchedaClienteCognome
    Dim SchedaClienteIndirizzo
    Dim SchedaClienteCodicePostale
    Dim SchedaClienteComune
    Dim SchedaClienteProvincia
    Dim SchedaClienteTelefono
    Dim SchedaClienteFax
    Dim SchedaClienteEmail
    Dim EMPTYFIELDS
    Dim INFO_EMPTYFIELDS
    EMPTYFIELDS = False
    INFO_EDEMPTYFIELDS = "Compila tutte le informazioni richieste!"
    Session("IDUtente") = IDUtente
    Session("SchedaClienteNome") = SchedaClienteNome
    Session("SchedaClienteCognome") = SchedaClienteCognome
    Session("SchedaClienteIndirizzo") = SchedaClienteIndirizzo
    Session("SchedaClienteCodicePostale") = SchedaClienteCodicePostale
    Session("SchedaClienteComune") = SchedaClienteComune
    Session("SchedaClienteProvincia") = SchedaClienteProvincia
    Session("SchedaClienteTelefono") = SchedaClienteTelefono
    Session("SchedaClienteFax") = SchedaClienteFax
    Session("SchedaClienteEmail") = SchedaClienteEmail
    Session("EMPTYFIELDS") = EMPTYFIELDS
    Session("INFO_EMPTYFIELDS") = INFO_EMPTYFIELDS
    Dim IDOrdine
    Dim OrdineData
    Dim OrdineImporto
    Dim OrdineSpeseDiSpedizione
    Session("IDOrdine") = IDOrdine
    Session("OrdineData") = OrdineData
    Session("OrdineImporto") = OrdineImporto
    Session("OrdineSpeseDiSpedizione") = OrdineSpeseDiSpedizione
    Session("AcquistoOK") = ""
    End If
    %>
    <%if len(Session("aperta")) > 0 then
    idlineadicatalogo = Request.QueryString("idlineadicatalogo")
    Session.LCID=1040
    Set DatabaseWebStore = Server.CreateObject("ADODB.Connection")
    DBString =""
    DBString = DBString + "Driver={Microsoft Access Driver (*.mdb)};"
    DBString = DBString + "Dbq=" & Server.MapPath(".") & "/mdb-database/webstore.mdb;"
    DBString = DBString + "Uid=Admin;"
    DBString = DBString + "Pwd=;"
    DatabaseWebStore.Open DBString
    If Len(idlineadicatalogo) = 0 Then%>
    <%Else%>
    <%
    Dim sqlquery
    sqlquery = "select  *  FROM [Catalogo, Articoli]  WHERE IDLinea = " & idlineadicatalogo & " AND InVendita=true"
    Dim RecordsetArticoli
    Set RecordsetArticoli = DatabaseWebStore.Execute(sqlquery)
    %>
        <%iPageSize = 9 'NUMERO RECORD PER PAGINA               
                    Set RecordsetArticoli = Server.CreateObject("ADODB.Recordset")            
                    RecordsetArticoli.PageSize = iPageSize
                    RecordsetArticoli.CacheSize = iPageSize
                    RecordsetArticoli.Open sqlquery, DatabaseWebStore, adOpenStatic, adLockReadOnly, adCmdText
                     recCount = RecordsetArticoli.RecordCount
                    iPageCount = RecordsetArticoli.PageCount
                    If iPageCurrent > iPageCount Then iPageCurrent = iPageCount
                    If iPageCurrent < 1 Then iPageCurrent = 1                       
                    If iPageCount = 0 Then
                    Else
                        RecordsetArticoli.AbsolutePage = iPageCurrent
                        iRecordsShown = 0           
                    End If
                    %>
    <%If RecordsetArticoli.EOF Then%>
    <%Else%>
                                               <td width="541" valign="top">
                                    <table border="0"  width="541" id="table33" cellpadding="0" cellspacing="0">
     
      <tr>
            <TD width="26" background="icons/cellanew_04.gif">
                </TD>
            <TD bgcolor="#f5f8fa">
                <table border="0" width="100%" id="table35" cellspacing="0" cellpadding="0">
                                        <tr>
        <td height="120">
    
     
    <TABLE BORDER=1 bordercolor="#F5F8FA" CELLPADDING=0 cellspacing="0" width="100%" id="table36">
    <%Do While iRecordsShown < iPageSize And Not RecordsetArticoli.EOF
                ID = RecordsetArticoli("ID")
                        Codice = RecordsetArticoli("Codice")
                        Denominazione = RecordsetArticoli("Denominazione")
                        Informazioni = RecordsetArticoli("Informazioni")
                        Informazioni1= RecordsetArticoli("Informazioni1")
                        Informazioni3= RecordsetArticoli("Informazioni3")
                        InformazioniComplete = RecordsetArticoli("InformazioniComplete")
                        InformazioniEstese = RecordsetArticoli("InformazioniEstese")
                        Confezione = RecordsetArticoli("Confezione")
                        Prezzo = RecordsetArticoli("Prezzo")
                        RiferimentoDiIcona = RecordsetArticoli("RiferimentoDiIcona")
                        RiferimentoDiFoto = RecordsetArticoli("RiferimentoDiFoto")
    %>
    <TR VALIGN="top">
    <TD width="33%" bordercolor="#98C4DD" height="45">
    <%If RiferimentoDiFoto <> "" Then%>
    <a href="scheda_articolo.asp?idarticolo=<%=ID%>"><IMG SRC="immagini/<%=RiferimentoDiFoto%>" border="0" height="350" wigth="250" alt="<%=Denominazione%>"></a></td>
    <TD width="33%" bordercolor="#98C4DD">&nbsp;</td>
    <TD width="33%" bordercolor="#98C4DD">&nbsp;</td>
    </tr>
    <TR VALIGN="top">
      <TD width="33%" height="45" bordercolor="#98C4DD"><span class="title" style="margin-left: 5"><%=Denominazione%></span><p style="margin-left: 5" class="title">&nbsp;</p>
    <a href="scheda_articolo.asp?idarticolo=<%=ID%>"><p class="text"><% =Left(InformazioniEstese, 200)%>...</a><br><br>
    Prezzo €&nbsp;<b><%=Prezzo%></b></td>
      <TD width="33%" bordercolor="#98C4DD">&nbsp;</td>
      <TD width="33%" bordercolor="#98C4DD">&nbsp;</td>
    </tr>
    <tr>
    <td align="left" colspan="4">
    <%else%>
    <%End If%></TD>
    </TR>
    <%iRecordsShown = iRecordsShown + 1
    RecordsetArticoli.MoveNext
    Loop
    %>
    </TABLE>
    </div>
    <%End If%>
    <%End If%>  
    
    <% If iPageCount <> 1 Then %>
        <table align="center" id="table38">
        <tr>
        <td width="100%" align="center" valign="middle">
          <p class="title"><font face="verdana" size="2" color="#000000">
            
        <% If iPageCurrent > 1 Then %>
              <a href="elenco_articoli.asp?idlineadicatalogo=<%=idlineadicatalogo%>&page=<%=iPageCurrent-1%>">
            <IMG SRC="icons/art_pre.gif" alt="Articolo precedente" BORDER=0 width="100" height="23"></a>&nbsp; 
        <%end if %>   
        <% If iPageCount > 2 then
            if iPageCurrent-9 < 1 then da_pag = 1 else da_pag = iPageCurrent-9
            if iPageCurrent+9 > iPageCount then fino_a_pag = iPageCount else fino_a_pag = iPageCurrent+9
        Else
            da_pag = 1
            fino_a_pag = iPageCount
        end if %>
        <%for i = da_pag to fino_a_pag %>
            <%if i = iPageCurrent then %>  </font>
          [<%=i%>]<font face="verdana" size="2" color="#000000">
            
            <% else %>   
                 <A href="elenco_articoli.asp?idlineadicatalogo=<%=idlineadicatalogo%>&page=<%=i%>"><%=i%></A>
            <%end if %>   
        <% next %>       
        <%if iPageCurrent > 0 and iPageCurrent < iPageCount then %>
            &nbsp;<a href="elenco_articoli.asp?idlineadicatalogo=<%=idlineadicatalogo%>&page=<%=iPageCurrent+1%>"><IMG SRC="icons/art_suc.gif" alt="Articolo successivo" BORDER=0 width="100" height="23"></a> 
        <%end if %>  
        </font>
          </p>
        </td>
        </tr>
        <tr>
        <td align="center" class="title">
        <p>
        Pagina <%=iPageCurrent%> di
        <font color="#00005a"><b><%=iPageCount%></b></font>
        </p>
        </td>
        </tr>
        </table>
    <% end if %>
    <%
    RecordsetArticoli.Close
    Set RecordsetArticoli = Nothing
    DatabaseWebStore.Close
    Set DatabaseWebStore = Nothing
    else%>
    <%end if
    %>                             </tr>
                                        </table>        
            </TD>  </tr>
    </table>                        
                                </td>
                                </tr>                            
                           </table>       <tr>
            <td></td>
        </tr>
    </table>
    </div>
    </BODY>
    </html>
     
  2. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    1.727
    Mi Piace Ricevuti:
    63
    Punteggio:
    48
    Occupazione:
    free lance
    Località:
    Lombardia
    la paginazione viene di solito gestita dalla query,
    in ambito Microsoft posso darti la query che uso per ms sql, vedo che tu usi "access",
    non so quanto sia compatibile, ma puoi sempre provarla,
    PHP:
    SELECT from (
      
    SELECT
         Row_Number
    () over ORDER BY col_duecol_uno ) as RowIndex
        
    ,col_tre
        
    ,col_quattro
        
    ,col_uno
        
    ,col_due
      FROM tabella
    ) as pager
    WHERE pager
    .RowIndex "ultima colonna visualizzata" and pager.RowIndex <= "ultima colonna da visualizzare"
    ultima colonna visualizzata all'inizio è 0 poi assume il valore ricavato dalla pagina precedente
    ultima colonna da visualizzare viene incrementata con il numero di record x pagina

    in precedenza, puoi contare i record e crearti i riferimenti (link) per "paginare" velocemente

    se non dovesse esserci compatibilità, cerca funzioni simili per "access"
    oppure se proprio ci fosse incompatibilità e impossibilità, puoi gestire la paginazione da script con una tecnica simile (contando i records)

    modificare lo script per gestire le pagine è compito tuo ...
     
    Ultima modifica: 3 Agosto 2017
  3. Paolo69

    Paolo69 Moderatore Membro dello Staff MOD

    Registrato:
    18 Febbraio 2010
    Messaggi:
    491
    Mi Piace Ricevuti:
    12
    Punteggio:
    18
    Sesso:
    Maschio
    Occupazione:
    Administrator
    Località:
    Italy
    Home Page:
    Ciao, mi confermi che il codice che si preoccupa della visualizzazione dei record è il seguente?
    Codice:
    <table>
    <tr>
    
    <%
    
       iPageSize = 9 'NUMERO RECORD PER PAGINA
                  
       Set RecordsetArticoli = Server.CreateObject("ADODB.Recordset")        
           RecordsetArticoli.PageSize = iPageSize
           RecordsetArticoli.CacheSize = iPageSize
           RecordsetArticoli.Open sqlquery, DatabaseWebStore, adOpenStatic, adLockReadOnly, adCmdText
           recCount = RecordsetArticoli.RecordCount
           iPageCount = RecordsetArticoli.PageCount
        
           If iPageCurrent > iPageCount Then iPageCurrent = iPageCount
        
           If iPageCurrent < 1 Then iPageCurrent = 1
                          
           If iPageCount = 0 Then
               Else
               RecordsetArticoli.AbsolutePage = iPageCurrent
               iRecordsShown = 0        
           End If
                    %>
    <%
           If RecordsetArticoli.EOF Then
        
           Else
    %>
    <td width="541" valign="top">
       <table border="0"  width="541" id="table33" cellpadding="0" cellspacing="0">
       <tr>
       <TD width="26" background="icons/cellanew_04.gif"></TD>
       <TD bgcolor="#f5f8fa">
    
            <table border="0" width="100%" id="table35" cellspacing="0" cellpadding="0">
            <tr>
            <td height="120">
                <TABLE BORDER=1 bordercolor="#F5F8FA" CELLPADDING=0 cellspacing="0" width="100%" id="table36">
    <%
           Do While iRecordsShown < iPageSize And Not RecordsetArticoli.EOF
                ID = RecordsetArticoli("ID")
                        Codice = RecordsetArticoli("Codice")
                        Denominazione = RecordsetArticoli("Denominazione")
                        Informazioni = RecordsetArticoli("Informazioni")
                        Informazioni1= RecordsetArticoli("Informazioni1")
                        Informazioni3= RecordsetArticoli("Informazioni3")
                        InformazioniComplete = RecordsetArticoli("InformazioniComplete")
                        InformazioniEstese = RecordsetArticoli("InformazioniEstese")
                        Confezione = RecordsetArticoli("Confezione")
                        Prezzo = RecordsetArticoli("Prezzo")
                        RiferimentoDiIcona = RecordsetArticoli("RiferimentoDiIcona")
                        RiferimentoDiFoto = RecordsetArticoli("RiferimentoDiFoto")
    %>
               <TR VALIGN="top">
                   <TD width="33%" bordercolor="#98C4DD" height="45"><%
                
                   If RiferimentoDiFoto <> "" Then
                
                   %><a href="scheda_articolo.asp?idarticolo=<%=ID%>"><IMG SRC="immagini/<%=RiferimentoDiFoto%>" border="0" height="350" wigth="250" alt="<%=Denominazione%>"></a></td>
                    <TD width="33%" bordercolor="#98C4DD">&nbsp;</td>
                    <TD width="33%" bordercolor="#98C4DD">&nbsp;</td>
               </tr>
               <TR VALIGN="top">
                 <TD width="33%" height="45" bordercolor="#98C4DD"><span class="title" style="margin-left: 5"><%=Denominazione%></span><p style="margin-left: 5" class="title">&nbsp;</p><a href="scheda_articolo.asp?idarticolo=<%=ID%>"><p class="text"><% =Left(InformazioniEstese, 200)%>...</p></a><br><br>
    Prezzo €&nbsp;<b><%=Prezzo%></b></td>
                  <TD width="33%" bordercolor="#98C4DD">&nbsp;</td>
                  <TD width="33%" bordercolor="#98C4DD">&nbsp;</td>
               </tr>
               <tr>
                   <td align="left" colspan="4"><%else%><%End If%></TD>
               </TR>
           <%
            iRecordsShown = iRecordsShown + 1
            RecordsetArticoli.MoveNext
            Loop
            %>
           </TABLE>
    </td>
    </tr>
    </table>
    </TD>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    <%End If%>
    
    
    E' abbastanza confuso.
    Comunque è risolvibile riformattando la tabella ed inserendo una variabile che al valore 3 la stessa scrive '</tr><tr>' in modo da mandare a capo i record dopo il terzo.

    Esempio:
    Codice:
    ' prima del ciclo
    Conta = 0
    
    'nel ciclo
    Conta = Conta + 1
    If Conta = 3 Then
       Response.Write = "</tr><tr>"
       Conta = 0
    End If
    
    
     
    Ultima modifica: 3 Agosto 2017
  4. ghis

    ghis Nuovo Utente

    Registrato:
    2 Agosto 2017
    Messaggi:
    7
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Grazie per le risposte
    ho inserito questo codice e funziona ma mi servirebbe che il campo 1 caricasse un immagine
    In più se i record sono più di 9 quando vado nella seconda pagina mi riporta gli stessi della pagina precedente

    Ecco il codice
    HTML:
    <%
    
    Dim strConnect
        strConnect = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/webstore.mdb")
    
    'Imposta Connessione e Recordset
        Set objUsersConn = Server.CreateObject("ADODB.Connection")
        Set objUsersRs = Server.CreateObject("ADODB.Recordset")
            objUsersConn.open strConnect
            strUsersSql = "select  *  FROM [Catalogo, Articoli]  WHERE IDLinea = " & idlineadicatalogo & " AND InVendita=true"
            objUsersRs.Open strUsersSql, objUsersConn, 3, 3
        ' -----------------------------------------
        ' imposto il numero di record da estrapolare
            objUsersRs.pagesize = 9
        ' imposto il numero di colonne
            colonne = 3
        ' -----------------------------------------
            objUsersRs.absolutepage = 1
        ' imposto a zero il contatore   
            Conta = 0
    
    ' BARRA TITOLO
    %>
    <table align="center"  cellpadding="0" cellspacing="1" width="550">
        
        <tr>
        <%
        
        do while not objUsersRs.eof
          If rowcount >= objUsersRs.pagesize then exit do
        
            rowcount = rowcount + 1
            
            campo1 = (objUsersRs("RiferimentodiFoto"))
            campo2 = (objUsersRs("Codice"))
            campo3 = (objUsersRs("Prezzo"))
        
        %>
            <td><a href="scheda_articolo.asp?idarticolo=212"  class="mask"><img class="img-responsive zoom-img" src="images/<%=campo1%>/>alt="" /></a><br /><%=campo2%><br %><%=campo3%></td>
        <%
        
        'Incrementiamo il Contatore
            Conta = Conta + 1
        'Impostiamo il numero di colonne che si vogliono creare (nel nostro caso 2)
        if  Conta = colonne then
            conta = 0
        
        response.write "<tr></tr>"
        
        end if
        'Scorriamo i dati della tabella
        objUsersRs.MoveNext
        loop
        
        
        %>
        </tr>
    </table>
    <%
    
    
            objUsersRs.Close()
        Set objUsersRs = Nothing
    
    ' fine   
    %>
    questo invece è il codice per la pagina successiva
    HTML:
    <%iPageSize = 3 'NUMERO RECORD PER PAGINA
                    
                    
                    Set RecordsetArticoli = Server.CreateObject("ADODB.Recordset")
                
                    RecordsetArticoli.PageSize = iPageSize
                    RecordsetArticoli.CacheSize = iPageSize
                    RecordsetArticoli.Open sqlquery, DatabaseWebStore, adOpenStatic, adLockReadOnly, adCmdText
                    
                    recCount = RecordsetArticoli.RecordCount
                    iPageCount = RecordsetArticoli.PageCount
                    
    
                    If iPageCurrent > iPageCount Then iPageCurrent = iPageCount
                    If iPageCurrent < 1 Then iPageCurrent = 1   
                        
                    If iPageCount = 0 Then
                    Else
                        RecordsetArticoli.AbsolutePage = iPageCurrent
                        iRecordsShown = 0
                        
                        
                        
                        
                    End If
                    %>
    
    <%If RecordsetArticoli.EOF Then%>
    <%Else%>
    
    eco cosa mi ritorna screen.JPG
     
  5. Paolo69

    Paolo69 Moderatore Membro dello Staff MOD

    Registrato:
    18 Febbraio 2010
    Messaggi:
    491
    Mi Piace Ricevuti:
    12
    Punteggio:
    18
    Sesso:
    Maschio
    Occupazione:
    Administrator
    Località:
    Italy
    Home Page:
    Prova questo codice con barra di navigazione per poter navigare senza problemi tra i record:
    Codice:
    <%
    
    Select Case Request.QueryString("dir")
      Case ""
        v_pagina_corrente = 1
      Case "next"
        v_pagina_corrente= cdbl(Request.QueryString("pag")) + 1
      Case "prev"
        v_pagina_corrente= cdbl(Request.QueryString("pag")) - 1
    End Select
    
               adOpenKeyset = 1
          
    ' -----------------------------------------
    'Numero di record da visualizzare su ogni pagina
           v_record_pagina = 9
    ' imposto il numero di colonne
            colonne = 3
    ' imposto a zero il contatore  
            Conta = 0
    ' -----------------------------------------
    
       Set conn = Server.CreateObject("ADODB.Connection")
       Set rst = Server.CreateObject("ADODB.Recordset")
           conn.open strConnect
           criterio =  "SELECT *  FROM [Catalogo, Articoli] WHERE IDLinea = "&idlineadicatalogo&" AND InVendita = true ;"
           rst.Open criterio, conn, adOpenKeyset
    
    ' Se la query ritorna dati, visualizzo la pagina
       If Not (rst.bof and rst.eof) then
           rst.PageSize = cint(v_record_pagina)
           rst.AbsolutePage = Cdbl(v_pagina_corrente)
    
    %>
    <table align="center"  cellpadding="0" cellspacing="1" width="550">
        <tr>
    <%
    
    'Ciclo sui record della pagina
       For x = 1 To rst.PageSize
    
    'Esco alla fine della pagina, se è l'ultima e contiene meno record delle altre
       If rst.Eof then exit for
    
    ' valorizzo le variabili
            campo1 = (rst("RiferimentodiFoto"))
            campo2 = (rst("Codice"))
            campo3 = (rst("Prezzo"))
      
    %><td><a href="scheda_articolo.asp?idarticolo=212" class="mask"><img class="img-responsive zoom-img" src="images/<%=campo1%>/" alt="" /></a><br /><%=campo2%><br %><%=campo3%></td>
    <%
      
        'Incrementiamo il Contatore
            Conta = Conta + 1
        'Impostiamo il numero di colonne che si vogliono creare (nel nostro caso 2)
        if  Conta = colonne then
            conta = 0
           response.write "</tr><tr>"
        end if
    
      %>
    <%
    
           rst.MoveNext
        Next
    
    
    %>
        </tr>
    </table>
    
    
    <p align="center"><font size="2" face="Verdana">Pagina <%=v_pagina_corrente%> di <%=rst.PageCount%></font></p>
    <p align="center"><%
     'Qui semplicemente creo la barra di navigazione.
        If rst.EOF and rst.BOF then
      
        %>
        <font color='#C0C0C0' size='2' face='Verdana'><strong>Inizio</strong></font>
        <font color='#C0C0C0' size='2' face='Verdana'><strong>Indietro</strong></font>
        <font color='#C0C0C0' size='2' face='Verdana'><strong>Avanti</strong></font>
        <font color='#C0C0C0' size='2' face='Verdana'><strong>Fine</strong></font>
        <%
      
        Else
                If Cdbl(v_pagina_corrente) > 1 Then
              
                %>
                <a href="default.asp?pag="><font size='2' face='Verdana'><strong>Inizio</strong></font></a>
                <a href='default.asp?pag=<%=v_pagina_corrente%>'><font size='2' face='Verdana'><strong>Indietro</strong></font></a>
                <%
              
                Else
              
                %>
                <font color='#C0C0C0' size='2' face='Verdana'><strong>Inizio</strong></font>
                <font color='#C0C0C0' size='2' face='Verdana'><strong>Indietro</strong></font>
                <%
              
                End If
      
                If Cdbl(v_pagina_corrente) < rst.PageCount Then
              
                %>
                <a href='default.asp?pag=<%= v_pagina_corrente %>'><font size='2' face='Verdana'><strong>Avanti</strong></font></a>
                <a href='default.asp?pag=<%= rst.pagecount - 1 %>'><font size='2' face='Verdana'><strong>Fine</strong></font></a>
                <%
              
                Else
              
                %>
                <font color='#C0C0C0' size='2' face='Verdana'><strong>Avanti</strong></font>
                <font color='#C0C0C0' size='2' face='Verdana'><strong>Fine</strong></font>
                <%
              
                End If  
      
        End If
      
        %></p>
    <%
    
       Else 'La query non ritorna dati
    
    %>
      <p>Non esistono dati.</p>
    <%
    
       End If
    
           rst.Close
           conn.Close
       set rst = nothing
       set conn = nothing
    
    %>
    
    Non lo posso provare per ovvi motivi ma se sei bravo dovresti farlo funzionare.
    Modifica nella barra di navigazione il nome della pagina da default.asp a quella che vuoi te.
     
  6. ghis

    ghis Nuovo Utente

    Registrato:
    2 Agosto 2017
    Messaggi:
    7
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Grazie non ho molte conoscenze in Asp come si può capire bene.
    L ho provato mi da questo errore su questo codice
    HTML:
    Microsoft VBScript runtime error '800a01f5'
    
    Illegal assignment: 'adOpenKeyset'
    
    /elenco_articoli.asp, line 330 
     
  7. Paolo69

    Paolo69 Moderatore Membro dello Staff MOD

    Registrato:
    18 Febbraio 2010
    Messaggi:
    491
    Mi Piace Ricevuti:
    12
    Punteggio:
    18
    Sesso:
    Maschio
    Occupazione:
    Administrator
    Località:
    Italy
    Home Page:
    purtroppo non posso testare il codice all'interno della tua pagina, prova a crearne una tutta sua, non ha bisogno di nulla se non la sola connessione al DB.
    Probabilmente la vabiabile va in conflitto con qualche altra...
     
  8. ghis

    ghis Nuovo Utente

    Registrato:
    2 Agosto 2017
    Messaggi:
    7
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Ho creato la pagina solo con il codice che mi hai indicato e fatto la connessione al database
    L' errore che mi ritorna è questo
    Codice:
    Microsoft OLE DB Provider for ODBC Drivers error '80040e21'
    
    ODBC driver does not support the requested properties.
    
    /prova.asp, line 28
    
    ecco i codici delle due pagine

    HTML:
    <!--#include file="databaseopen.asp"-->
    <%
    
    Select Case Request.QueryString("dir")
      Case ""
        v_pagina_corrente = 1
      Case "next"
        v_pagina_corrente= cdbl(Request.QueryString("pag")) + 1
      Case "prev"
        v_pagina_corrente= cdbl(Request.QueryString("pag")) - 1
    End Select
    
               adOpenKeyset = 1
          
    ' -----------------------------------------
    'Numero di record da visualizzare su ogni pagina
           v_record_pagina = 9
    ' imposto il numero di colonne
            colonne = 3
    ' imposto a zero il contatore 
            Conta = 0
    ' -----------------------------------------
    
       Set conn = Server.CreateObject("ADODB.Connection")
       Set rst = Server.CreateObject("ADODB.Recordset")
           conn.open strConnect
           criterio =  "SELECT *  FROM [Catalogo, Articoli] WHERE IDLinea = "&idlineadicatalogo&" AND InVendita = true ;"
           rst.Open criterio, conn, adOpenKeyset
    
    ' Se la query ritorna dati, visualizzo la pagina
       If Not (rst.bof and rst.eof) then
           rst.PageSize = cint(v_record_pagina)
           rst.AbsolutePage = Cdbl(v_pagina_corrente)
    
    %>
    <table align="center"  cellpadding="0" cellspacing="1" width="550">
        <tr>
    <%
    
    'Ciclo sui record della pagina
       For x = 1 To rst.PageSize
    
    'Esco alla fine della pagina, se è l'ultima e contiene meno record delle altre
       If rst.Eof then exit for
    
    ' valorizzo le variabili
            campo1 = (rst("RiferimentodiFoto"))
            campo2 = (rst("Codice"))
            campo3 = (rst("Prezzo"))
     
    %><td><a href="scheda_articolo.asp?idarticolo=212" class="mask"><img class="img-responsive zoom-img" src="images/<%=campo1%>/" alt="" /></a><br /><%=campo2%><br %><%=campo3%></td>
    <%
     
        'Incrementiamo il Contatore
            Conta = Conta + 1
        'Impostiamo il numero di colonne che si vogliono creare (nel nostro caso 2)
        if  Conta = colonne then
            conta = 0
           response.write "</tr><tr>"
        end if
    
      %>
    <%
    
           rst.MoveNext
        Next
    
    
    %>
        </tr>
    </table>
    
    
    <p align="center"><font size="2" face="Verdana">Pagina <%=v_pagina_corrente%> di <%=rst.PageCount%></font></p>
    <p align="center"><%
     'Qui semplicemente creo la barra di navigazione.
        If rst.EOF and rst.BOF then
     
        %>
        <font color='#C0C0C0' size='2' face='Verdana'><strong>Inizio</strong></font>
        <font color='#C0C0C0' size='2' face='Verdana'><strong>Indietro</strong></font>
        <font color='#C0C0C0' size='2' face='Verdana'><strong>Avanti</strong></font>
        <font color='#C0C0C0' size='2' face='Verdana'><strong>Fine</strong></font>
        <%
     
        Else
                If Cdbl(v_pagina_corrente) > 1 Then
              
                %>
                <a href="default.asp?pag="><font size='2' face='Verdana'><strong>Inizio</strong></font></a>
                <a href='default.asp?pag=<%=v_pagina_corrente%>'><font size='2' face='Verdana'><strong>Indietro</strong></font></a>
                <%
              
                Else
              
                %>
                <font color='#C0C0C0' size='2' face='Verdana'><strong>Inizio</strong></font>
                <font color='#C0C0C0' size='2' face='Verdana'><strong>Indietro</strong></font>
                <%
              
                End If
     
                If Cdbl(v_pagina_corrente) < rst.PageCount Then
              
                %>
                <a href='default.asp?pag=<%= v_pagina_corrente %>'><font size='2' face='Verdana'><strong>Avanti</strong></font></a>
                <a href='default.asp?pag=<%= rst.pagecount - 1 %>'><font size='2' face='Verdana'><strong>Fine</strong></font></a>
                <%
              
                Else
              
                %>
                <font color='#C0C0C0' size='2' face='Verdana'><strong>Avanti</strong></font>
                <font color='#C0C0C0' size='2' face='Verdana'><strong>Fine</strong></font>
                <%
              
                End If 
     
        End If
     
        %></p>
    <%
    
       Else 'La query non ritorna dati
    
    %>
      <p>Non esistono dati.</p>
    <%
    
       End If
    
           rst.Close
           conn.Close
       set rst = nothing
       set conn = nothing
    
    %>
    la connessione al database è questa
    HTML:
    <%
    
    Dim strConnect
        strConnect = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/webstore.mdb")%>
     
  9. ghis

    ghis Nuovo Utente

    Registrato:
    2 Agosto 2017
    Messaggi:
    7
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    sono riuscito con questo codice ad impaginare a tre colonne

    HTML:
    <%@LANGUAGE = VBScript%>
    <%
       ' DEFINISCO LE VARIABILI CHE MI SERVONO PER L'APPLICAZIONE
        Dim sc, cn, rs, quanti, pag, contatore
    
        ' DEFINISCO LA STRINGA DI CONNESSIONE
        sc = ""
        sc = sc & "driver={Microsoft Access Driver (*.mdb)};dbq="
        sc = sc & Server.MapPath("mdb-database/webstore7.mdb")
    
        ' IMPOSTO LA CONNESSIONE EDIL RECORDSET
        Set cn = Server.CreateObject("ADODB.Connection")
        Set rs = Server.CreateObject("ADODB.Recordset")
    
        ' APRO LA CONNESSIONE COL DATABASE
        cn.Open sc
    
        ' DEFINISCO IL NUMERO DI RECORD DA VISUALIZZARE PER OGNI PAGINA
        quanti = 5
    
        ' RECUPERO IL NUMERO DI PAGINA CORRENTE
        ' E CONTROLLO CHE NON SIA INFERIORE A 1
        pag = Request.QueryString("pag")
        If IsNumeric(pag) = False Or pag < 1 Then pag = 1
    
        ' IMPOSTO UN CONTATORE
        contatore = 0
    %>
    <html>
    <head>
    <title>Elenco articoli</title>
    </head>
    <body>
    
    <table border="0"><tr>
    <%
       
        ' APRO IL RECORDSET
        rs.Open "SELECT RiferimentoDiIcona, denominazione, prezzo FROM [Catalogo, articoli] ORDER BY RiferimentoDiIcona, denominazione, prezzo ASC", cn, 1
        rs.PageSize = quanti
        rs.AbsolutePage = pag
        ' ESEGUO IL CICLO
       While rs.EOF = False And contatore < quanti
            ' IMPOSTO LA PAGINAZIONE A 3 COLONNE ED N RIGHE
            ' IN FUNZIONE DEL NUMERO DI RECORD PRESENTI NEL DB
    
            If contatore = 3 Then
                contatore = 0
                Response.Write "</tr><tr>"
            End If
    %>
        <td><IMG SRC="immagini/<%=rs("RiferimentoDiIcona")%> height="250" width="150" border="0"><br><%=rs("denominazione")%><br><%=rs("prezzo")%></td>
    <%
            rs.MoveNext
            ' INCREMENTO IL VALORE DEL CONTATORE
            contatore = contatore + 1
        Wend
       
    %>
    </tr></table>
    <p align="center">
    <%If pag > 1 Then%>
        <a href="elenco.asp?pag=<%=pag-1%>">Indietro</a>
    <%End If%>
    <%
        Dim x
        x = 1
        For x = 1 To rs.PageCount
            If CInt(pag) <> x Then
    %>
                [<a href="elenco.asp?pag=<%=x%>"><%=x%></a>]
    <%
            Else
    %>
                [<a href="elenco.asp?pag=<%=x%>"><b><%=x%></b></a>]
    <%
            End If
        Next
    %>
    <%If rs.EOF = False Then%>
        <a href="elenco.asp?pag=<%=pag+1%>">Avanti</a>
    <%End If%>
    </p>
    
    </body>
    </html>
    <%
        ' UN PO DI PULIZIA...
    rs.Close
        Set rs = Nothing
        cn.Close
        Set cn = Nothing
    %>
    funziona ma non mi imposta i record a 9 per pagina e non mi visualizza l'immagine
    avete dei suggerimenti.
    Grazie
     
  10. Paolo69

    Paolo69 Moderatore Membro dello Staff MOD

    Registrato:
    18 Febbraio 2010
    Messaggi:
    491
    Mi Piace Ricevuti:
    12
    Punteggio:
    18
    Sesso:
    Maschio
    Occupazione:
    Administrator
    Località:
    Italy
    Home Page:
    Nell'esempio seguente vedrai come connettersi ad un database Microsoft Access mediante il driver OLEDB 4.0.
    Esistono principalmente 2 driver di connessione ma attualmente è consigliato utilizzare OLEDB in quanto più performante e più stabile.

    Codice:
    <%
    'dichiaro le variabili
        Dim strPath, strConnect
    
    'creo il percorso usando Server.MapPath
        strPath = Server.MapPath("/mdb-database/webstore.mdb")
    ' connessione OLEDB
        strConnect = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&strPath
    
    ' vecchio ODBC non attivo
    ' strConnect = "DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & strPath
    %>
    
    ...prova così.

    Differenza tecniche tra le due connessioni: http://www.aspitalia.com/articoli/db/ole-db.aspx
     
  11. ghis

    ghis Nuovo Utente

    Registrato:
    2 Agosto 2017
    Messaggi:
    7
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Ok funziona. Grazie
    Non va la barra di navigazione. Rimane sempre sulla stessa pagina

    HTML:
    <
    <%
    
    Select Case Request.QueryString("dir")
      Case ""
        v_pagina_corrente = 1
      Case "next"
        v_pagina_corrente= cdbl(Request.QueryString("pag")) + 1
      Case "prev"
        v_pagina_corrente= cdbl(Request.QueryString("pag")) - 1
    End Select
    
               adOpenKeyset = 1
         
    ' -----------------------------------------
    'Numero di record da visualizzare su ogni pagina
           v_record_pagina = 9
    ' imposto il numero di colonne
            colonne = 3
    ' imposto a zero il contatore
            Conta = 0
    ' -----------------------------------------
    
       Set conn = Server.CreateObject("ADODB.Connection")
       Set rst = Server.CreateObject("ADODB.Recordset")
           conn.open strConnect
           criterio =  "SELECT riferimentodifoto, codice, prezzo FROM [Catalogo, Articoli] ORDER BY riferimentodifoto, codice, prezzo ASC"
           rst.Open criterio, conn, adOpenKeyset
    
    ' Se la query ritorna dati, visualizzo la pagina
       If Not (rst.bof and rst.eof) then
           rst.PageSize = cint(v_record_pagina)
           rst.AbsolutePage = Cdbl(v_pagina_corrente)
    
    %>
    <table align="center"  cellpadding="0" cellspacing="1" width="550">
        <tr>
    <%
    
    'Ciclo sui record della pagina
       For x = 1 To rst.PageSize
    
    'Esco alla fine della pagina, se è l'ultima e contiene meno record delle altre
       If rst.Eof then exit for
    
    ' valorizzo le variabili
            campo1 = (rst("riferimentodifoto"))
            campo2 = (rst("Codice"))
            campo3 = (rst("Prezzo"))
    %><td><IMG SRC="immagini/<%=campo1%>" "height="250" width="150" border="0"><br /><%=campo2%><br /><%=campo3%></td>
    <%
        'Incrementiamo il Contatore
            Conta = Conta + 1
        'Impostiamo il numero di colonne che si vogliono creare (nel nostro caso 2)
        if  Conta = colonne then
            conta = 0
           response.write "</tr><tr>"
        end if
    
      %>
    <%
    
           rst.MoveNext
        Next
    
    
    %>
        </tr>
    </table>
    
    
    <p align="center"><font size="2" face="Verdana">Pagina <%=v_pagina_corrente%> di <%=rst.PageCount%></font></p>
    <p align="center"><%
     'Qui semplicemente creo la barra di navigazione.
        If rst.EOF and rst.BOF then
     
        %>
        <font color='#C0C0C0' size='2' face='Verdana'><strong>Inizio</strong></font>
        <font color='#C0C0C0' size='2' face='Verdana'><strong>Indietro</strong></font>
        <font color='#C0C0C0' size='2' face='Verdana'><strong>Avanti</strong></font>
        <font color='#C0C0C0' size='2' face='Verdana'><strong>Fine</strong></font>
        <%
     
        Else
                If Cdbl(v_pagina_corrente) > 1 Then
             
                %>
                <a href="default.asp?pag="><font size='2' face='Verdana'><strong>Inizio</strong></font></a>
                <a href='default.asp?pag=<%=v_pagina_corrente%>'><font size='2' face='Verdana'><strong>Indietro</strong></font></a>
                <%
             
                Else
             
                %>
                <font color='#C0C0C0' size='2' face='Verdana'><strong>Inizio</strong></font>
                <font color='#C0C0C0' size='2' face='Verdana'><strong>Indietro</strong></font>
                <%
             
                End If
     
                If Cdbl(v_pagina_corrente) < rst.PageCount Then
             
                %>
                <a href='default.asp?pag=<%= v_pagina_corrente %>'><font size='2' face='Verdana'><strong>Avanti</strong></font></a>
                <a href='default.asp?pag=<%= rst.pagecount - 1 %>'><font size='2' face='Verdana'><strong>Fine</strong></font></a>
                <%
             
                Else
             
                %>
                <font color='#C0C0C0' size='2' face='Verdana'><strong>Avanti</strong></font>
                <font color='#C0C0C0' size='2' face='Verdana'><strong>Fine</strong></font>
                <%
             
                End If  
     
        End If
     
        %></p>
    <%
    
       Else 'La query non ritorna dati
    
    %>
      <p>Non esistono dati.</p>
    <%
    
       End If
    
           rst.Close
           conn.Close
       set rst = nothing
       set conn = nothing
    
    %>
    
     
  12. Paolo69

    Paolo69 Moderatore Membro dello Staff MOD

    Registrato:
    18 Febbraio 2010
    Messaggi:
    491
    Mi Piace Ricevuti:
    12
    Punteggio:
    18
    Sesso:
    Maschio
    Occupazione:
    Administrator
    Località:
    Italy
    Home Page:
    Ecco il codice con la barra di navigazione corretta, mancava la variabile "dir":
    Codice:
    <%
    
    Select Case Request.QueryString("dir")
      Case ""
        v_pagina_corrente = 1
      Case "next"
        v_pagina_corrente= cdbl(Request.QueryString("pag")) + 1
      Case "prev"
        v_pagina_corrente= cdbl(Request.QueryString("pag")) - 1
    End Select
    
               adOpenKeyset = 1
         
    ' -----------------------------------------
    'Numero di record da visualizzare su ogni pagina
           v_record_pagina = 9
    ' imposto il numero di colonne
            colonne = 3
    ' imposto a zero il contatore
            Conta = 0
    ' -----------------------------------------
    
       Set conn = Server.CreateObject("ADODB.Connection")
       Set rst = Server.CreateObject("ADODB.Recordset")
           conn.open strConnect
           criterio =  "SELECT riferimentodifoto, codice, prezzo FROM [Catalogo, Articoli] ORDER BY riferimentodifoto, codice, prezzo ASC"
           rst.Open criterio, conn, adOpenKeyset
    
    ' Se la query ritorna dati, visualizzo la pagina
       If Not (rst.bof and rst.eof) then
           rst.PageSize = cint(v_record_pagina)
           rst.AbsolutePage = Cdbl(v_pagina_corrente)
    
    %>
    <table align="center"  cellpadding="0" cellspacing="1" width="550">
        <tr>
    <%
    
    'Ciclo sui record della pagina
       For x = 1 To rst.PageSize
    
    'Esco alla fine della pagina, se è l'ultima e contiene meno record delle altre
       If rst.Eof then exit for
    
    ' valorizzo le variabili
            campo1 = (rst("riferimentodifoto"))
            campo2 = (rst("Codice"))
            campo3 = (rst("Prezzo"))
    %><td><IMG SRC="immagini/<%=campo1%>" height="250" width="150" border="0" /><br /><%=campo2%><br /><%=campo3%></td>
    <%
        'Incrementiamo il Contatore
            Conta = Conta + 1
        'Impostiamo il numero di colonne che si vogliono creare (nel nostro caso 2)
        if  Conta = colonne then
            conta = 0
           response.write "</tr><tr>"
        end if
    
      %>
    <%
    
           rst.MoveNext
        Next
    
    
    %>
        </tr>
    </table>
    
    
    <p align="center"><font size="2" face="Verdana">Pagina <%=v_pagina_corrente%> di <%=rst.PageCount%></font></p>
    <p align="center"><%
     'Qui semplicemente creo la barra di navigazione.
        If rst.EOF and rst.BOF then
        %>
        <font color='#C0C0C0' size='2' face='Verdana'><strong>Inizio</strong></font>
        <font color='#C0C0C0' size='2' face='Verdana'><strong>Indietro</strong></font>
        <font color='#C0C0C0' size='2' face='Verdana'><strong>Avanti</strong></font>
        <font color='#C0C0C0' size='2' face='Verdana'><strong>Fine</strong></font>
        <%
        Else
                If Cdbl(v_pagina_corrente) > 1 Then
             
                %>
                <a href="default.asp?pag="><font size='2' face='Verdana'><strong>Inizio</strong></font></a>
                <a href='default.asp?dir=prev&pag=<%=v_pagina_corrente%>'><font size='2' face='Verdana'><strong>Indietro</strong></font></a>
                <%
             
                Else
             
                %>
                <font color='#C0C0C0' size='2' face='Verdana'><strong>Inizio</strong></font>
                <font color='#C0C0C0' size='2' face='Verdana'><strong>Indietro</strong></font>
                <%
             
                End If
                If Cdbl(v_pagina_corrente) < rst.PageCount Then
             
                %>
                <a href='default.asp?dir=next&pag=<%= v_pagina_corrente %>'><font size='2' face='Verdana'><strong>Avanti</strong></font></a>
                <a href='default.asp?dir=next&pag=<%= rst.pagecount - 1 %>'><font size='2' face='Verdana'><strong>Fine</strong></font></a>
                <%
             
                Else
             
                %>
                <font color='#C0C0C0' size='2' face='Verdana'><strong>Avanti</strong></font>
                <font color='#C0C0C0' size='2' face='Verdana'><strong>Fine</strong></font>
                <%
             
                End If  
        End If
        %></p>
    <%
    
       Else 'La query non ritorna dati
    
    %>
      <p>Non esistono dati.</p>
    <%
    
       End If
    
           rst.Close
           conn.Close
       set rst = nothing
       set conn = nothing
    
    %>
    
     
  13. ghis

    ghis Nuovo Utente

    Registrato:
    2 Agosto 2017
    Messaggi:
    7
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Perfetto Paolo. Ti ringrazio per l'aiuto!!
     
  14. Paolo69

    Paolo69 Moderatore Membro dello Staff MOD

    Registrato:
    18 Febbraio 2010
    Messaggi:
    491
    Mi Piace Ricevuti:
    12
    Punteggio:
    18
    Sesso:
    Maschio
    Occupazione:
    Administrator
    Località:
    Italy
    Home Page:
    ...se mi mandi in pvt il link della pagina, una volta finita, così vedo quanto sei stato bravo.
    Alla prossima.
     
Sto caricando...

Condividi questa Pagina