• User

    ordinare i dati in tre colonne

    Buona giornata, eccomi di nuovo qui a chiedere supporto.
    Ho la necessità di visualizzare i record estratti dal db in tre colonne, lo script originale ne prevede solo due. Ho quindi pensato di copiare un <TD> il risultato però è che la seconda e terza colonna sono identiche.
    Come posso ovviare? Questo il codice:

        <table border="0" width="80%" cellspacing="0" cellpadding="0">
          <tr>
            <td width="100%" valign="top">
              <p align="center"><b><font face="Arial" color="#98A0B8" size="4"><br>
              Categoria : <%=categoria%></font></b></td>
          </tr>
          <tr>
            <td valign="top">
            <hr size="1" color="#98A0B8">
    

    <%
    sql = "SELECT * From SotCategorie where CategoriaID='" & cat & "' order by NomeCategoria"
    set rs = Conn.Execute (sql)
    IF rs.EOF then
    Response.Write "<center><font color='#838383'>Categoria non ancora definita<br></font>"
    Else
    End IF
    %>
    <div align="center"><table border="0" width=525>
    <%
    Do while NOT rs.EOF
    ColNum = 1
    Do while ColNum < 3
    %>
    <TD ALIGN=LEFT VALIGN=top WIDTH="175"><img border="0" src="<%=rs("ImmagineCat")%>"> <font face="Arial" size="2"><b> <a href="News.asp?CatID=<%=rs("IDSottocategoria")%>&Subcat=<%=rs("CategoriaID")%>&categoria=<%=server.urlencode(categoria)%>&cat=<%=server.urlencode(rs("NomeCategoria"))%>"><%=rs("NomeCategoria")%> </a>
    </b><font face="Arial" size="1">
    <%
    IDCategoria = rs("IDSottocategoria")
    sqlcount = "SELECT count(Titolo) FROM News where IDCategoria='" & IDCategoria & "' and show=yes"
    Set RScounts = Conn.Execute(sqlcount)
    rcounts = RScounts(0)
    Response.Write ("( " & rcounts & " )")
    Response.Write "<br>"
    Response.Write "<center><font color='#838383'>"& rs("DescrizioneSotCat")& "<br></font>"
    %>
    </font></font></TD>
    <%
    if NOT rs.EOF then
    rs.MoveNext
    end if
    ColNum = ColNum + 1
    if NOT rs.EOF then
    %>
    <TD ALIGN=LEFT VALIGN=top WIDTH="175"> <img border="0" src="<%=rs("ImmagineCat")%>"><font size="2" face="Arial"><b> <a href="News.asp?CatID=<%=rs("IDSottocategoria")%>&Subcat=<%=rs("CategoriaID")%>&categoria=<%=server.urlencode(categoria)%>&cat=<%=server.urlencode(rs("NomeCategoria"))%>"><%=rs("NomeCategoria")%></a></b><font face="Arial" size="1">
    <%
    IDCategoria= rs("IDSottocategoria")
    sqlcount = "SELECT count(Titolo) FROM news where IDCategoria='" & IDCategoria & "' and show=yes"
    Set RScounts = Conn.Execute(sqlcount)
    rcounts = RScounts(0)
    Response.Write ("( " & rcounts & " )")
    Response.Write "<br>"
    Response.Write "<center><font color='#838383'>"& rs("DescrizioneSotCat")& "<br></font>"

    RScounts.close
    set RScounts = nothing
    %>
    </font></font></TD>
    <TD ALIGN=LEFT VALIGN=top WIDTH="175"> <img border="0" src="<%=rs("ImmagineCat")%>"><font size="2" face="Arial"><b> <a href="News.asp?CatID=<%=rs("IDSottocategoria")%>&Subcat=<%=rs("CategoriaID")%>&categoria=<%=server.urlencode(categoria)%>&cat=<%=server.urlencode(rs("NomeCategoria"))%>"><%=rs("NomeCategoria")%></a></b><font face="Arial" size="1">
    <%
    IDCategoria= rs("IDSottocategoria")
    sqlcount = "SELECT count(Titolo) FROM news where IDCategoria='" & IDCategoria & "' and show=yes"
    Set RScounts = Conn.Execute(sqlcount)
    rcounts = RScounts(0)
    Response.Write ("( " & rcounts & " )")
    Response.Write "<br>"
    Response.Write "<center><font color='#838383'>"& rs("DescrizioneSotCat")& "<br></font>"

    RScounts.close
    set RScounts = nothing
    %>
    </font></font></TD>
    <%
    END IF
    ColNum = ColNum + 1
    Loop
    %>
    <tr>
    <%
    IF NOT rs.EOF then
    rs.MoveNext
    End IF
    Loop
    %>
    </TABLE>
    </div>

    Ringrazio per l'attenzione


  • User

    Provo a ragionare da solo.

    indico quante colonne con:
    <div align="center"><table border="0" width=525>
    <%
    Do while NOT rs.EOF
    ColNum = 1
    Do while ColNum < 3
    %>

    con il <td ...... estraggo i dati della prima colonna e passo alla seconda
    <%
    if NOT rs.EOF then
    rs.MoveNext
    end if
    ColNum = ColNum + 1
    if NOT rs.EOF then
    %>
    <td ......................

    adesso passo alla terza colonna
    <%
    if NOT rs.EOF then
    rs.MoveNext
    end if
    ColNum = ColNum + 1
    if NOT rs.EOF then
    %>
    <td ......................

    e chiudo
    <%
    END IF
    ColNum = ColNum + 1
    Loop
    %>
    <tr>
    <%
    IF NOT rs.EOF then
    rs.MoveNext
    End IF
    Loop
    %>

    lancio la pagina e ricevo questo errore:
    Microsoft VBScript compilation error '800a040e' 'loop' without 'do'
    che è riferito alle righe finali
    <%
    IF NOT rs.EOF then
    rs.MoveNext
    End IF
    Loop
    %>

    non riesco a venirne a capo, credo però di essere nella giusta direzione.
    In attesa di un supporto continuo a fare altre prove, ciao.