+ 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