Popolamento di una tabella html a 2 colonne da database

Nemesi

Nuovo Utente
5 Apr 2005
2
0
0
premetto che sono agli inizi con asp e che uso Dreamweaver MX 2004.

Dunque, io vorrei popolare una tabella in questo modo:

|----------|-----------|
| record1 | record 2 |
|----------|-----------|

Per un totale di 8 record (quindi 4 righe della mia tabella).

Ho utilizzato il comportamento di area ripetuta di dreamweaver con la seguente modifica:

<table>
<%
While ((Repeat1__numRows <> 0) AND (NOT MioRS.EOF))
%>
<tr>
<%
If (NOT mioRS.EOF) Then
%>
<td>
<% If ((mioRS.Fields.Item("campo").Value) <> "") Then %>
<img src="<%=(mioRS.Fields.Item("campo").Value)%>">
</td>
<% End If %>
<%End If%>
<%
If (NOT mioRS.EOF) Then
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
mioRS.MoveNext()
%>
<td>
<% If ((mioRS.Fields.Item("campo").Value) <> "") Then %>
<img src="<%=(mioRS.Fields.Item("campo").Value)%>">
</td>
<% End If%>
</tr>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
mioRS.MoveNext()
Wend
%>
</table>

Ho poi usato i comportamenti di dreamwever per visualizzare solo gli 8 record e ho messo una barra di navigazione recordset.
Ho fatto una prova con 13 record.
Al primo giro è tutto ok poi, quando vado a visualizzare gli altri record con il link avanti ho il messaggio di errore:"Il record corrente corrisponde all'inizio o alla fine del file oppure è stato eliminato. Per eseguire l'operazione richiesta è necessario disporre di un record corrente"
Se i record sono pari ritorna tutto ok.
Per questo motivo ho inserito quello che credevo fosse un controllo arrivo alla fine del record (ma evidentemente così non è), nel qualcaso non mi inserisce la colonna TD.

Come devo correggere?

Grazie mille ! :)
 

Nemesi

Nuovo Utente
5 Apr 2005
2
0
0
Mi dò un'autorisposta

Nel qualcaso qualcuno avesse dovuto avere un problema simile posto la soluzione che ho trovato io:

- Innanzitutto non badare agli errori di codice dell'altro post :)

- Considerare che la soluzione da me trovata è quella di un novizio alle prime armi con ASP e che sicuramente ci sarà qualcosa di inutile, sbagliato e/o formalmente scorretto (però funziona).

- Consirerare che il codice che segue è una modifica a quello generato dai comportamenti server di Macromedia Dreamweaver MX e che quindi non funzionerà senza il codice autogenerato dal programma in testa alla pagina.

- La pagina utilizza codice VBScript.

Il problema consisteva nel popolare una tabella html, formata da due colonne, con i dati estratti da un recordset uno per ogni colonna secondo lo schema che segue:

td td
|------------------------|------------------------|
tr | Valore Campo1 Record1 | Valore Campo1 Record2 |
|------------------------|------------------------|

utilizzando e modificando il comportamento area ripetuta di DW.

Ho proceduto nella maniera che segue:

1) Ho creato la tabella (formata da una riga e due colonne)

2) Ho creato il RS

3) Ho inserito il campo interessato all'interno delle due celle della mia tabella

4) Ho applicato il comportamento di area ripetuta ( visualizzazione di 10 record alla volta) di DW alla riga della tabella

Ora dovrei trovarmi nella seguente situazione:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/mia_connessione.asp" -->
<%
Dim Mio_Recordset
Dim Mio_Recordset_numRows

Set Mio_Recordset = Server.CreateObject("ADODB.Recordset")
Mio_Recordset.ActiveConnection = MM_mia_connessione_STRING
Mio_Recordset.Source = "SELECT * FROM mia_tabella_db"
Mio_Recordset.CursorType = 0
Mio_Recordset.CursorLocation = 2
Mio_Recordset.LockType = 1
Mio_Recordset.Open()

Mio_Recordset_numRows = 0
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = 10
Repeat1__index = 0
Mio_Recordset_numRows = Mio_Recordset_numRows + Repeat1__numRows
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
</head>

<body>
<table>
<%
While ((Repeat1__numRows <> 0) AND (NOT Mio_Recordset.EOF))
%>
<tr>
<td><%=(Mio_Recordset.Fields.Item("mio_campo").Value)%></td>
<td><%=(Mio_Recordset.Fields.Item("mio_campo").Value)%></td>
</tr>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
Mio_Recordset.MoveNext()
Wend
%>

</table>
</body>
</html>
<%
Mio_Recordset.Close()
Set Mio_Recordset = Nothing
%>

A questo punto mi ritrovo con una tabella che mi genera 10 righe con due colonne all'interno delle quali lo stesso valore del campo.
Non è quello che voglio ottenere, io voglio che ad ogni colonna il valore del campo sia quello del record sucessivo.

Ho ragionato nel seguente modo: invece che incrementare il valore della riga, ovvero spostarmi al record sucessivo alla fine della TR della mia tabella dovrò farlo alla fine della creazione di ogni TD.
Cioè ogni volta che viene popolata una cella viene incrementato il valore della riga e si passa al record sucessivo, quindi popolo la seconda cella e così via.

A questo punto devo però effettuare un controllo che mi verifichi chenon sia giunto alla fine dei record, altrimenti cercherei di popolare una delle celle con i valori di un campo di un record inestitente e ciò mi creerebbe un'errore (ed è proprio questo che mi succedeva).

A questo punto la mia soluzione :

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/mia_connessione.asp" -->
<%
Dim Mio_Recordset
Dim Mio_Recordset_numRows

Set Mio_Recordset = Server.CreateObject("ADODB.Recordset")
Mio_Recordset.ActiveConnection = MM_mia_connessione_STRING
Mio_Recordset.Source = "SELECT * FROM mia_tabella_db"
Mio_Recordset.CursorType = 0
Mio_Recordset.CursorLocation = 2
Mio_Recordset.LockType = 1
Mio_Recordset.Open()

Mio_Recordset_numRows = 0
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = 10
Repeat1__index = 0
Mio_Recordset_numRows = Mio_Recordset_numRows + Repeat1__numRows
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
</head>

<body>
<table>

<%
While ((Repeat1__numRows <> 0) AND (NOT Mio_Recordset.EOF)) ' Inizio ciclo di ripetizione generato da DW
%>
<tr>
<td>
<% If Not Mio_Recordset.EOF Then ' Controllo di non essere giunto alla fine dei record e non creo una cella inutile%>
<%=(Mio_Recordset.Fields.Item("mio_campo").Value)%>
<% 'Se non sono alla fine dei record passo al recor sucessivo
If Not Mio_Recordset.EOF Then
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
Mio_Recordset.MoveNext()
End If
%>
<% End If %>
</td>
<td>
<% If Not Mio_Recordset.EOF Then ' Controllo di non essere giunto alla fine dei record e non creo una cella inutile%>
<%=(Mio_Recordset.Fields.Item("mio_campo").Value)%>
<% 'Se non sono alla fine dei record passo al recor sucessivo
If Not Mio_Recordset.EOF Then
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
Mio_Recordset.MoveNext()
End If
%>
<% End If %>
</td>
</tr>
<% Wend ' Fine ciclo di ripetizione generato da DW%>
</table>
</body>
</html>
<%
Mio_Recordset.Close()
Set Mio_Recordset = Nothing
%>

Spero di essere stato utile a qualcun'altro.

Ciao !
 
Discussioni simili
Autore Titolo Forum Risposte Data
alessandra86 [PHP] Popolamento database con form ricorsivi - problema array (foreach ) PHP 5
M Tempi per popolamento pubblico personalizzato Social Media Marketing 0
V [PHP] Menu a tendina con popolamento dati da un db PHP 6
A chiusura finestra popup e popolamento campo form Javascript 1
M Popolamento di massa da un file con PHP e Mysql PHP 2
B popolamento random MySQL Database 9
P C# Salvare una colonna del DataGridView XML 0
M pulsante per aprire una maschera che contiene controllo schede MS Access 0
M Leggere in un report il valore di una casella combinata di una maschera Database 0
D Miglior modo per estrarre le occorrenze di un elemento in un set di più file xml e quindi scrivere il risultato in una tabella Excel o magari in JSON XML 0
S [VB.NET]: Coordinate immagini dentro una PictureBox Visual Basic 0
I stampare una stringa echo PHP 2
MarcoGrazia Riprendere una sessione interrotta PHP 0
L Rendere una parte trasparente Photoshop 3
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
K Visualizzare del html responsive in una Webview Sviluppo app per Android 0
otto9due Ordinare option di una select Javascript 5
N Come si crea una variabile dinamica da incrementare? Javascript 1
L Eliminazione di una pagina dalla gallery SEO e Posizionamento 0
otto9due Proteggere una cartella e file con password tramite .htaccess e .htpasswd Web Server 0
L Riempimento di una tabella al click di un bottone Javascript 1
R Variabile non risconosciuta dentro una funzione PHP 1
C ACCESS Aprire maschera se valore non presente in una combo MS Access 7
A media degli elementi estratti da una query MySQL 0
spider81man Eliminare primo ed ultimo carattere di una colonna MySQL 0
pacemattia408 disattivazione di una function Javascript 4
G Eliminare l'effetto refresh di una pagina internet PHP 8
otto9due Inserire o aggiornare tabella my sql controllando una coppia di valori PHP 7
M Select Option dentro una Table jQuery 2
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
E Scrivere una data corrente in un pdf PHP 1
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
I Assegnare dati fetch request ad una variabile globale Javascript 0
Shyson Puntare ad una sotto directory WordPress 3
Stex1967 Salvare una immagine che si trova su porta TCP 8080 di altro sito PHP 7
S Selezionare ultimo record di una sotto query MySQL 27
V Query per una somma PHP 2
L Mysql: Nascondere le pagine dopo una ricerca PHP 1
L salvare una immagine elaborata in canvas Javascript 1
L salvare una immagine elaborata in canvas Javascript 1
W visualizzare solo file html e sottocartelle di una cartella PHP 1
W Elenco dei link del file presenti in una cartella PHP 2
R Mettere in sicurezza una comunicazione .NET Framework 0
L Creare una forma geometrica Photoshop 1
G Casella combinata in una query MS Access 4
voldemort Cos'è una SCRL? Che tipo di società è?? Leggi, Normative e Fisco 1
F Funzione Glob - ricerca file contenente una parola PHP 1
felino [EXCEL] Conteggio ore all'interno di una settimana Windows e Software 7
Y cambiare sfondo di una pagina Javascript 1

Discussioni simili