5 messaggi dal 02 gennaio 2009
nella pagina index.asp ho un elenco di voci che sono dei collegamenti che aprono un'ulteriore pagina .asp. Il problema sta nel fatto che desidero impostare tali collegamenti su due colonne:...

<table width="400" border="0" align="center">
<tr>
<td width="200">
<div id="menu" align="left">
<%
Dim sql
sql="SELECT * FROM categorie "
rs.Open sql, cn, adOpenKeyset
dim i
for i = 0 to 40
%>
<%
Dim link
link=rs("nome")
id1=rs("id_categoria")
%>
<a href="categorie.asp?id=<% response.write(id1)%>"><%response.write(link)%></a>
<%
rs.MoveNext
next
%>
</div>
</td>
<td width="200">
<div id="menu" align="left">
<a href="categorie.asp?id=<% response.write(id1)%>"><%response.write(link)%></a>
<%
rs.MoveNext
next
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
%>
</div>
</td>
</tr>
</table>

nella prima colonna mi carica regolarmente i primi 41 record nella seconda mi copia 41 volte il 41 record
... qualche suggerimento? vi ringrazio anticipatamente..
27 messaggi dal 27 maggio 2007
Ciao storia83

Nel codice che hai postato c'è un next di troppo e non generi il tag <tr> per il ritorno a capo.
Puoi semplificare il tutto con il codice qui sotto riportato dove modificando il valore a = 2 con 3 o 4 puoi ottenere Più colonne.
Cercando sul motore di ricerca puoi trovare molti esempi.
Buon lavoro.

<table width="400" border="0" align="center">
<tr>
<td width="200">
<div id="menu" align="left">
<%
Dim sql
sql="SELECT * FROM categorie "
rs.Open sql, cn, adOpenKeyset
dim i,a
for i = 0 to 40
if a = 2 then
a = 0
response.write "</tr><tr>"
end if %>
<td><a href="categorie.asp?id=<%=rs("nome")%>"><%=rs("id_categoria")%></a></td>
<% rs.MoveNext()
a = a + 1
next
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
%>
</div>
</td>
</tr>
</table>
5 messaggi dal 02 gennaio 2009
Innanzitutto grazie mille per esserti interessato....
il codice da te postato genera una cosa di questo tipo:
categoria 1 categoria 2
categoria 3 categoria 4
categoria 5 categoria 6
io, invece, vorrei
categoria 1 categoria 4
categoria 2 categoria 5
categoria 3 categoria 6
ho provato a dare un'occhiata nel sito ma nn ho trovato nulla del genere
... ancora grazie
27 messaggi dal 27 maggio 2007
Scusa non avevo letto bene il tuo messaggio per fare in due colonne devi crearti un array dove copi tutti i record del db poi fai un ciclo.
esempio
colonna 1 link(0) colonna 2 link(40)
colonna 1 link(1) colonna 2 link(41)
colonna 1 link(2) colonna 2 link(42)

puoi usare lo stesso ciclo ma su array se non sai come si usa array fai una ricerca tipo asp array e trovi molti esempi.
ciao
5 messaggi dal 02 gennaio 2009
..rispondo dopo un mese perkè ho lavorato su altro
cmq premetto che non ho dimestichezza con gli array
per cui volevo sapere se è il caso di lavorare con array bidimensionali e popolarli quindi con la funzione getrows o con quelli monodimensionali e se così come si inserisconi i dati prelevati da un db?
27 messaggi dal 27 maggio 2007
puoi usare la funzione getrows che ti carica tutti i dati nel array di tipo bidimensionale mio array(colonna, riga) quinti eviti un ciclo per il carico dati di seguito con ciclo for to next carichi i tuoi dati sulla pagina....
5 messaggi dal 02 gennaio 2009
ho provato in questo modo ma non riesco ad ordinarli in due colonne

<%
Dim sql
sql="SELECT nome FROM categorie "
rs.Open sql, cn, adOpenKeyset
arrTabella=rs.getrows()
%>
<table>
<%
for iRiga = 0 to UBound(arrTabella, 2)
response.write "<TR>" & vbCrLf
for iColonna = 0 to UBound(arrTabella, 1)
Response.Write vbTab & "<td>" &arrTabella(iColonna,iRiga)& "</td>" & vbCrLf
next
Response.Write "</tr>" & vbCrLf
next
%>
</table>
<%
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
%>
27 messaggi dal 27 maggio 2007
per il semplice fatto che fai eseguire un ciclo lineare per ovviare al problema devi dividere il ciclo.
esempio 80 record diviso 2 sono 40 quindi
valore1 = totale / 2
for valore = 0 to valore1 questi sono 40 cicli
<tr>
<td> array(colonna,valore)</td>
<td> array(colonna,valore + valore1 + 1)</td>
</tr>
next

gli array iniziano da 0 quindi il valore piu alto non e 40 ma 39.
colonna1(0) colonna2(39+1+0)
colonna1(1) colonna2(39+1+1)
ecc...
spero di averti chiarito le idee

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.