+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 10 su 10

impaginazione record database

  1. #1
    ghis non è in linea Novello
    Post
    5
    Like Inviati  
    0
    Like Ricevuti  
    0
    Buongiorno,
    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. Vedo altri siti che lo fanno.
    Questi sono i codici che uso
    <%
    Dim sqlquery
    sqlquery = "select  *  FROM [Catalogo, Articoli]  WHERE IDLinea = " & idlineadicatalogo & " AND InVendita=true"
    
    Dim RecordsetArticoli
    Set RecordsetArticoli = DatabaseWebStore.Execute(sqlquery)
    %>
        <%iPageSize = 5 '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%>
    
    <%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")
    %>
    
    Grazie

    qui è dove stampa
    <TD width="87%" bordercolor="#98C4DD" height="90">
    <p style="margin-left: 5" class="title"><%=Denominazione%></p>
    <a href="scheda_articolo.asp?idarticolo=<%=ID%>"><p class="text"><% =Left(InformazioniEstese, 200)%>...</a><br>
    <br>
    Prezzo €&nbsp;<b><%=Prezzo%></b>
    </td>
    
    <table id="table37" border="0" cellpadding="0" cellspacing="0">
    	
    	<tr>
    		<td>
    			</td>
    		<td bgcolor="#FFFFFF">
    			<%If RiferimentoDiIcona <> "" Then%>
    <a href="scheda_articolo.asp?idarticolo=<%=ID%>"><IMG SRC="http://forum.masterdrive.it/images/small/<%=RiferimentoDiIcona%>" border="0" alt="<%=Denominazione%>"></a>
    
    Ultima modifica di AntonioG; 06-08-2017 08:40  Motivo: Messaggi uniti

  2. #2
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,505
    Blogs
    5
    Like Inviati  
    6
    Like Ricevuti  
    35
    Tu cosa hai pensato di fare? Quale codice hai scritto? Il codice è tuo?

    Come suggerimento generale ti posso dire che

    a) devi leggere i record del DB piazzando i dati in un vettore di tre elementi strutturati per volta

    b) devi passare questo vettore ad una procedura che visualizzi gli elementi stampando i tre elementi in una tabella con 3 colonne
    ℹ️ Leggi di più su AntonioG ...

  3. #3
    ghis non è in linea Novello
    Post
    5
    Like Inviati  
    0
    Like Ricevuti  
    0
    Grazie per la risposta.
    lo script dovrebbe essere questo ma la mia poca conoscenza di asp non mi permette di contestualizzarlo nel ciclo

    count=0
    do while ......
     Conta = Conta + 1
        if  Conta = colonne then
            conta = 0
           response.write "</tr><tr>"
        end if
    

  4. #4
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    3,137
    Like Inviati  
    5
    Like Ricevuti  
    5
    AntonioG ti ha fatto tre domande. E non te le ha fatte a caso: gli servono per capire in quali termini tecnici risponderti. Ma non hai risposto a nessuna delle tre.
    ℹ️ Leggi di più su Brontolo ...

  5. #5
    ghis non è in linea Novello
    Post
    5
    Like Inviati  
    0
    Like Ricevuti  
    0
    cerco di essere più preciso
    Questo è il codice che uso adesso
    <%@LANGUAGE = VBScript%>
    <%
        Dim sc, cn, rs, quanti, pag, contatore
    
        sc = ""
        sc = sc & "driver={Microsoft Access Driver (*.mdb)};dbq="
        sc = sc & Server.MapPath("mdb-database/webstore7.mdb")
    
       
        Set cn = Server.CreateObject("ADODB.Connection")
        Set rs = Server.CreateObject("ADODB.Recordset")
    
        cn.Open sc
    
       quanti = 9
    
        pag = Request.QueryString("pag")
        If IsNumeric(pag) = False Or pag < 1 Then pag = 1
    
        
        contatore = 0
    %>
    <html>
    <head>
    <title>Elenco articoli</title>
    </head>
    <body>
    
    <table border="0"><tr>
    <%
        rs.Open "SELECT RiferimentoDiIcona, denominazione, prezzo FROM [Catalogo, articoli] ORDER BY RiferimentoDiIcona, denominazione, prezzo ASC", cn, 1
        rs.PageSize = quanti
        rs.AbsolutePage = pag
       While rs.EOF = False And contatore < quanti
            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
            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>
    <%
    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

    Il codice non è mio. L ho modificato per contestualizzarlo alla mia pagina
    Grazie

  6. #6
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    3,137
    Like Inviati  
    5
    Like Ricevuti  
    5
    La lettura del recordset "per pagine" ha senso solo nel caso di recordset con moltissimi record e credo che non sia il tuo caso. Ti consiglio di semplificare il codice facendo, nel ciclo While, una normale lettura sequenziale di un record alla volta. Elimina anche (provvisoriamente) la parte relativa alla paginazione avanti-indietro e includi nel tag <td></td> un solo valore, per esempio la denominazione. Più il codice è semplice, più sarà facile individuare gli errori.
    ℹ️ Leggi di più su Brontolo ...

  7. #7
    ghis non è in linea Novello
    Post
    5
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ho provato in tanti modi.
    Denominazione e prezzo me li carica in maniera corretta.
    Non mi carica a video l'immagine eppure il percorso è giusto.

    ho più di 20 prodotti in una sezione e volevo dividerli perchè diventa troppo lunga la pagina.
    Con questo codice funziona
    <%@LANGUAGE = VBScript%>
    <%
       
        Dim sc, cn, rs, quanti, pag, contatore
        
        sc = ""
        sc = sc & "driver={Microsoft Access Driver (*.mdb)};dbq="
        sc = sc & Server.MapPath("mdb-database/webstore7.mdb")
        
        Set cn = Server.CreateObject("ADODB.Connection")
        Set rs = Server.CreateObject("ADODB.Recordset")
       
        cn.Open sc
        
        quanti = 9
        
        pag = Request.QueryString("pag")
        If IsNumeric(pag) = False Or pag < 1 Then pag = 1
    
            contatore = 0
    %>
    <html>
    <head>
    <title>Elenco articoli</title>
    <style>a { color: blue; }</style>
    </head>
    <body>
    
    <table align="center" width="300" border="1">
    <%
        
        rs.Open "SELECT Riferimentodifoto FROM [Catalogo, Articoli] ORDER BY Riferimentodifoto ASC", cn, 1
        
        rs.PageSize = quanti
        rs.AbsolutePage = pag
        
        While rs.EOF = False And contatore < quanti
    %>
        <tr><td><IMG SRC="immagini/<%=rs("RiferimentoDifoto")%> height="250" width="150" border="0"></td></tr>
    <%
            rs.MoveNext
            
            contatore = contatore + 1
        Wend
    %>
    </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>
    <%
        
        rs.Close
        Set rs = Nothing
        cn.Close
        Set cn = Nothing
    %>
    
    ma me li mette uno sotto l'altro e nn mi carica comunque le foto

  8. #8
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    3,137
    Like Inviati  
    5
    Like Ricevuti  
    5
    Quote Originariamente inviato da ghis Visualizza il messaggio
    ma me li mette uno sotto l'altro e nn mi carica comunque le foto
    ...e questo lo avevi già detto.
    Ti ho dato qualche suggerimento su come facilitare la ricerca degli errori, ma vedo che non sei interessato.
    ℹ️ Leggi di più su Brontolo ...

  9. #9
    ghis non è in linea Novello
    Post
    5
    Like Inviati  
    0
    Like Ricevuti  
    0
    l'ho fatto ho lasciato un solo campo nel ciclo while ed ho risolto il problema dell' immagine
    l' impaginazione mi servirebbe a tre colonne e non singola.

    Non so come inserire il contatore che va a capo dopo la terza colonna mantenendo i record a 9 per pagina.

  10. #10
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    3,137
    Like Inviati  
    5
    Like Ricevuti  
    5
    Per favore non continuare a postare l'intero codice. La parte di apertura della connessione (prima del body) non interessa al tuo problema.
    Le immagini ti vengono tutte incolonnate perché crei una riga di tabella per ogni record che leggi. Devi invece creare una riga <tr> composta da tre celle <td>. La variabile contatore dovrebbe servire a questo, ma non la usi.
    In pratica:
    - scrivi l'inizio della tabella e della prima riga: <table> e <tr>.
    - per ogni record letto scrivi una cella: <td>... </td>.
    - incrementa contatore e, se è arrivato a 3: chiudi la riga </tr> e azzeralo. Se non sei a EOF apri una nuova riga <tr>.
    - finito il ciclo chiudi la tabella: </table>.

    Ovviamente così funzionerà solo se i records sono un multiplo di 3, altrimenti ...
    ℹ️ Leggi di più su Brontolo ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Libreoffice Writer: impaginazione errata tabelle
    Da michy5 nel forum LibreOffice, OpenOffice e altro
    Risposte: 1
    Ultimo Post: 27-11-2020, 17:09
  2. Problemi impaginazione file odt
    Da Demon91 nel forum LibreOffice, OpenOffice e altro
    Risposte: 2
    Ultimo Post: 29-06-2020, 23:42
  3. Report: impaginazione testo fisso dopo elenco
    Da Jocman nel forum Microsoft Access
    Risposte: 3
    Ultimo Post: 07-07-2017, 12:30
  4. [HTML]Problema con impaginazione facendo uso dei frameset
    Da vt1980 nel forum HTML, CSS e JavaScript
    Risposte: 3
    Ultimo Post: 27-04-2008, 23:22
  5. Query e impaginazione
    Da Red nel forum PHP
    Risposte: 4
    Ultimo Post: 02-10-2007, 17:53