my.ASPItalia.com
ASP.NET
|
HTML5
|
LINQ e Entity Framework
|
Silverlight
|
Windows Phone
|
.NET Framework
|
Windows 8
|
Libro WP7
|
Libro HTML5
|
Corso HTML5
Iscriviti
Login
Newsletter
Home
Articoli
Script
Notizie
FORUM
Blogs
Media
Tutorials
Corsi
Libri
Eventi
Tags
Tutti i forum
Ricerca
FAQ
Fai una domanda
Visualizzare recordset a quadricola
in
Classic ASP
>
ASP - base
Ultimo messaggio
Surya
il 5 giugno 2009 alle 01:30
14 messaggi
dal 14 dicembre 2008
Salve, ho un problemino inerente la visualizzazione di un recordset.
Ho un codice con una select che estrapola dati da un database access e li visualizza a video. Nessun problema. Il fatto é che invece che avere una visualizzazione lineare (un record ogni <tr>), vorrei avere 4 o 5 record inseriti in altrettante celle e poi proseguire in una altra riga altri 4 o 5, ecc. insomma una disposizione a quadricola.
Il fatto é che tocco asp ogni 4 5 mesi per lavoro e ogni volta devo ricominciare da capo.
Posto il codice, se gentilmente qualcuno puó darmi una mano.
Grazie
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file = "config.asp"-->
<%
'Chiamo la funzione di connessione al database
Call CnOpen()
' Connessione alla tabella sections e creazione recordset
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM sections", Cn, 1
' Connessione alla tabella links e creazione recordset
Set rsImg = Server.CreateObject("ADODB.Recordset")
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
</head>
<body>
<table width="760" border="0" cellspacing="0" cellpadding="0">
<%
While Not rs.EOF
id = rs("id")
%>
<!-- Inizio area ripetuta -->
<tr>
<td><%=(rs("section"))%></td>
</tr>
<%
rsImg.Open "SELECT TOP 3 * FROM links WHERE rel_id = " & id, cn, 1
While Not rsImg.EOF
%>
<tr>
<td><a href="<%=(rsImg("url_site"))%>" target="_blank"><img src="<%=(rsImg("url_image"))%>" border="0" /></a></td>
</tr>
<%
rsImg.MoveNext
Wend
rsImg.close
%>
<!-- Fine area ripetuta -->
<%
rs.MoveNext
Wend
rs.close
%>
</table>
<%
Call CnClose()
%>
</body>
</html>
Rispondi
Quoting
makbox
il 5 giugno 2009 alle 09:24
540 messaggi
dal 24 maggio 2002
Contributi
Se hai bisogno di effettuare un'operazione ogni x giri usa l'operatore Mod. Questo ti restituisce 0 se la divisione non ha resto ovvero 10 Mod 5 torna 0 ma anche 10 Mod 10 etc...
qui trovi un esempio
http://ns7.webmasters.com/caspdoc/html/vbscript_mod_operator.htm
Marco.
Rispondi
Quoting
Surya
il 5 giugno 2009 alle 13:18
14 messaggi
dal 14 dicembre 2008
grazie per la risposta Marco, vado subito a vedere
Surya
Rispondi
Quoting
Surya
il 5 giugno 2009 alle 23:43
14 messaggi
dal 14 dicembre 2008
Salve, ho trovato nel frattempo anche questo script che ho adattato alle mie esigenze. C'é peró un problema: come si evince sto tentando di nidificare due cicli while.
Il primo ciclo gestisce il primo recordset che estrae le macrosezioni del sito.
Il secondo ciclo gestisce il secondo recordset che estrae il contenuto di ogni macrosezione.
Nelle mie intenzioni, il flusso di visualizzazione dei dati dovrebbe essere:
- Prima Macrosezione
- contenuto prima macrosezione
- Seconda Macrosezione
- contenuto seconda macrosezione
- Terza Macrosezione
- contenuto terza macrosezione
ecc....
Invece ottengo
- Prima Macrosezione
- contenuto prima Macrosezione
- contenuto seconda macrosezione
- contenuto terza macrosezione
- Seconda Macrosezione
- Terza Macrosezione
- Quarta Macrosezione
ecc...
Posto il codice, qualcuno per favore sa dirmi come posso correggere?
Grazie
Surya
----------------------------------------------------------------------
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>
<%
var Cn = new ActiveXObject("ADODB.Connection");
Cn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("/mdb-database/db.mdb"));
var Mostra = Cn.Execute("SELECT * FROM links ORDER BY id")
var Cn2 = new ActiveXObject("ADODB.Connection");
Cn2.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("/mdb-database/db.mdb"));
var Mostra2 = Cn2.Execute("SELECT * FROM sections ORDER BY id")
var conta = 0; //
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
</head>
<body>
<table align="center" border="1">
<%
while (!Mostra2.EOF)
{
%>
<tr>
<td><%=(Mostra2("section"))%></td>
</tr>
<tr>
<%
while (!Mostra.EOF)
{
if (conta == 5)
{
conta = 0;
%>
</tr><tr><td><a href="<%=(Mostra("url_site"))%>" target="_blank"><img src="<%=(Mostra("url_image"))%>" border="0" /></a></td>
<%
}
else
{
%>
<td><a href="<%=(Mostra("url_site"))%>" target="_blank"><img src="<%=(Mostra("url_image"))%>" border="0" /></a></td>
<%
}
conta++;
Mostra.MoveNext();
}
%>
</tr>
<%
Mostra2.MoveNext();
}
%>
</table>
<%Cn.Close()%>
<%Cn2.Close()%>
</body>
</html>
Rispondi
Quoting
max10
il 6 giugno 2009 alle 21:44
27 messaggi
dal 27 maggio 2007
Ciao Surya
nel database ci sono due tabelle c'è una relazione tra le due seno la vedo dura a far corrispondere i dati.
basta creare un campo comune tra le due tabelle, quindi Prima Macrosezione carico valore di questa richiamo sql della seconda tabella where valore Prima Macrosezione ecc..
spero di non aver capito male e di essere stato di aiuto.
Rispondi
Quoting
Surya
l'8 giugno 2009 alle 13:44
14 messaggi
dal 14 dicembre 2008
Ciao max10, grazie per l'intervento
In effetti c'é un campo comune e le tabelle sono correttamente relazionate
Da quel punto di vista é tutto corretto
Il problema é che non vengono visualizzate con il giusto ordine. Non riesco in pratica a fare intersecare la sequenza di records ovenienti dalle due tabelle
Grazie
Surya
Rispondi
Quoting
max10
il 9 giugno 2009 alle 11:12
27 messaggi
dal 27 maggio 2007
Ciao Surya
il tuo primo listano l'o modificato utilizzando un array per gestire la prima tabella supponendo che section sia il secondo.
l'array e bidimensionale quindi id e la colonna 0 e section e colonna 1.
prova a vedere se ti va cosi visto che non o avuto tempo di provarlo.
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file = "config.asp"-->
<%
'Chiamo la funzione di connessione al database
Call CnOpen()
' Connessione alla tabella sections e creazione recordset
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM sections", Cn, 1
' Carico valori tabella su array bidimensionale
tabella1 = rs.GetRows ()
rs.close
numrows = ubound(tabella1, 2)
' Connessione alla tabella links e creazione recordset
Set rsImg = Server.CreateObject("ADODB.Recordset")
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
</head>
<body>
<table width="760" border="0" cellspacing="0" cellpadding="0"><tr>
<%
For r = 0 To numrows
id = tabella1(0,r)
%>
<!-- Inizio area ripetuta -->
<tr>
<td><%=tabella1(1,r)%></td>
</tr>
<%
i = 0
rsImg.Open "SELECT TOP 3 * FROM links WHERE rel_id = " & id, cn, 1
While Not rsImg.EOF
if i = 3 then
i = 0
response.write "</tr><tr>"
end if %>
<td><a href="<%=(rsImg("url_site"))%>" target="_blank"><img src="<%=(rsImg("url_image"))%>" border="0" /></a></td>
<%
i = i + 1
rsImg.MoveNext
Wend
rsImg.close
%> </tr>
<!-- Fine area ripetuta -->
<%
next
%>
</table>
<%
Call CnClose()
%>
</body>
</html>
buon lavoro...
Rispondi
Quoting
Salto rapido
Ultimi messaggi
Tutti i forum
Ricerca
Utenti online
ASP.NET
ASP.NET 2.0
ASP.NET 3.5
ASP.NET 4.0
.NET Framework
Silverlight
Windows Phone
Windows Presentation Foundation e WinForms
Windows Communication e Workflow
ASP - avanzato
ASP - base
SQL Server e MySQL
E-commerce
Hosting
Altri linguaggi e tecnologie
Windows Server, IIS & Security
Libri
OT
Commenti: blogs e notizie
Eventi
Torna al forum
| Feed
RSS
ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Effettua il login!
Hai dimenticato la password?
UTENTI ONLINE
In primo piano
Annunciate le versioni ufficiali di Visual Studio 11
Rilasciato Visual Studio 11 Beta: scopri tutte le novità!
Windows 8 Consumer Preview: segui con noi la diretta
I più letti di oggi
Le novità di ASP.NET 4.5 (Community Days 2012)
Introduzione ad Entity Framework
Web Camp - ASP.NET MVC 3 (Community Days 2012)
Forzare il binding di una casella di testo al tap sull'appbar di Windows Phone 7
Tutorial Windows Phone 7
Sviluppare applicazioni per Windows Phone
Forzare la chiusura dell'applicazione in Windows Phone 7
Evitare submit doppi della web form
Gestire l'input di date tramite il controllo DatePicker di jQuery UI
Media
Sviluppare applicazioni web mobile con HTML5 e jQuery mobile
Metro Style App per Windows 8 con HTML e Javascript
Tutti i media
In evidenza
Dal 29 febbraio arriva WinRTItalia.com: tutto sullo sviluppo per Windows 8 e Metro
Aprire una popup in Silverlight
Sviluppare applicazioni web mobile con HTML5 e jQuery mobile
Disegnare un'applicazione a servizi con Entity Framework e WCF
Il nuovo tag time in HTML5
Salvare e leggere rapidamente le impostazioni di un'applicazione Windows Phone
Metro Style App per Windows 8 con HTML e Javascript
Aggiungere un handler globale per le chiamate AJAX di ASP.NET MVC
MISC
I nostri autori
Collabora con noi!
Media Kit - Pubblicità sul nostro network