Newsgroup: it.comp.www.asp
Titolo: vediamo se cè qualcuno di veramente bravo

Mi connetto ad una database access diviso in tabelle: ogni tabella
rappresenta un tipo di categoria di libro (es, fantasy horror ecc).
All'interno di ogni tabella vi sono alcuni campi (titolo, autore ecc.), piů
la sottocategoria al quale appartiene(ad esempio nella fantasy fiabe romanzi
ecc.). io creo voglio creare una pagina asp che mi crei un elenco delle
sottocategorie presenti in ogni tabella estraendole direttamente da
database. Per questo uso un loop che esegue l'estrazione fino al eof del
recordset e mette il nome della sottocategoria all'interno della cella di
una tabella. a questo punto il problema: le sottocategorie vengono sě
visualizzate, ma (ovviamente) una sotto l'altra, in questo moido:
sottocategoria 1
sottocategoria 2
sottocategoria 3
sottocategoria 5
sottocategoria 5
sottocategoria 6
ecc.
IO invece vorrei che le sottocategorie venissero visualizzate in due
colonne, cioč in questa maniera:
sottocategoria 1      sottocategorie 4
sottocategoria 2      sottocategoria 5
sottocategoria 3      sottocategoria 6
ecc. č possible?in caso lo fosse vi prego di essere il piů chiari possibile
in quanto sono un novellino di ASP.
Grazie
Roberto

Sono un novellino anch'io, però questo problema l'ho già affrontato e
risolto.
Se usi una tabella per visualizzare i dati è sufficiente inserire nel ciclo
di lettura un tag </TR> solo ogni n (nel tuo caso 2) record letti.
Ciao
Anto


Prova a darti un consiglio. Io farei cosě:
registra tutte le voci del database in un array (invece di scriverle subito
sullo schermo le registri in questo tipo di variabili
categoria(1)=sottocategoria1 etc...)
Quindi, quando sai quanti record sono presenti, puoi fare:
meta=totale/2
response.write "<table><tr><td>"
for t=0 to meta
response.write categoria(t)&"<br>"
next
response.write "</td><td>"
for t=meta to totale
response.write categoria(t)&"<br>"
next
response.write "</td></tr></table>"
dove "categoria()" č l'array dove avrai registrato il contenuto del
database, totale č il numero di elementi nell'array.
Cosě dovrebbe andare (non l'ho provato!)
Ciao!
Andrew
(io veramente bravo? accipicchietta!)

Caro Roberto, probabilmente studi psicologia... sai bene che il modo
migliore per ottenere risposte dagli "smanettoni" č quello di "lanciare una
sfida" del tipo 'vediamo se cč qualcuno di veramente bravo'.
A parte questo, non occorre essere veramente bravi per il tuo problema.
La soluzione a mio avviso č di tipo HTML piů che ASP.
Crei una tabella in cui nel primo <TD> metti una tabella con una cascata di
<TR> da un solo <TD>...Mi spiego:
...
<% i=0
numerorighepercolonna = 3   'questo lo setti tu...
 %>
< TABLE >
<TR><TD>
    <TABLE><TR><TD>
    <% do while not rs1.EOF                'rs1 č il recordset in cui hai le
categorie
             subcat = rs1.Fields("subcategory") %>
    <%=subcat%></TD></TR>
    <% i=i+1
        if (i mod numerorighepercolonna) = 0 then               ' operazione
modulo !!!
             %>
    </TD></TR></TABLE>
  </TD>
  <TD><TABLE><TR><TD>
    <% else %>
    </TD></TR>
    <TR><TD>
    <%
    rs1.MoveNext()
    %>
    <% loop %>
Spero di esserti stato utile ! Ciao e non approfittarti della psicanalisi
!!!
Guga

 sottocategoria 3      sottocategoria 6
Hum vediamo se questa soluzione ti può andare bene ... tieni presente però
che io visualizzo i dati su due colonne si ma non creo una cella per ogni
categoria.
Allora una volta che hai ottenuto il tuo recordset puoi sapere quanti record
contiene...
<%
' rec è il nome del mio recordset che ho ottenuto....
num = rec.recordcount
'Questo serve per gestire il fatto che il numero di categorie possono essere
'dispari...
if (num mod 2) = 0 then
    col1 = num/2
    col2 = num
else
    col1 = int(num/2 + 1)
    col2 = num
end if
%>
<table>
<tr>
    <td>
    <%
    for b = 0 to col1-1
        if b <> 0 then response.write("<p>")
        response.write("<b>" & rec("Descrizione") & "</b><br>")
        rec.movenext
    next
    %>
<p>
    </td>
    <td>
    for b = col1 to col2-1
        if b <> col1 then response.write("<p>")
        response.write("<b>" & rec("Descrizione") & "</b><br>")
        rec.movenext
    next
%>
<p>
    </td>
</tr>
</table>
Questa è una possibilità oppure puoi usare degli array ...
<%
'questo è sempre il numero dei tuoi record
num = rec.recordcount
if (num mod 2) = 0 then
    col = num
else
    col = num + 1
end if
'dimensioni l'array con un numero pari di elementi
dim  arr(col)
i = 0
Do while not rec.eof
    arr(i) = rec("Descrizione")
    i = i + 1
    rec.movenext
loop
%>
<TABLE WIDTH=75% BORDER=1 CELLSPACING=1 CELLPADDING=1>
<TR>
<% for i = 0 to col step 2 %>
    <TD><%=arr(i)%></TD>
    <TD><%=arr( i + 1)%></TD>
<%
    next
  %>
</TR>
</TABLE>
Ovviamente puoi mischiare le due soluzioni per ottenere il risultato che ti
interessa di più..