Raggruppare dati
Roby140569 non è online. Ultima attività: 20/10/2008 12.29.24Roby140569
Inserito il: 07 ottobre 2008 19.10
2 messaggi dal 28 nov 2007 Istalla Microsoft Silverlight!
Ciao a tutti!

Ho una tabella di un database dove vengono memorizzati i dati di alcuni prodotti.
I prodotti sono suddivisi in categorie e sottocategorie.

Faccio un esempio per far capire meglio.

Questa è la tabella:
CLICCA QUI PER LA TABELLA
N.B. L'id_categoria della categoria B è 2... ho fatto un errore quando ho creato questa immagine... sorry!


Con questo codice mi faccio restituire solo i nomi delle categorie (A, B, C, ecc.), con dei link che mi portano al dettaglio di ogni categoria nel file elenco_prodotti.asp.

table width="100%" border="0" cellspacing="2" cellpadding="2">
<tr>
<%  
sqlString = "SELECT * FROM accessori GROUP BY id_categoria"
  
SET RS = Conn.Execute(sqlString)
WHILE NOT RS.EOF
  
Response.Write("<td valign=""top"" colspan=""3""><strong>")
Response.Write("<a href=""elenco_prodotti.asp?categoria=")
Response.Write RS("id_categoria")
Response.Write(""">")
Response.Write UCASE(RS("categoria"))
Response.Write("</a>")
Response.Write("</strong></td></tr>")

RS.MoveNext
WEND
%>
</table>


Questo è il file elenco_prodotti.asp che mi mostra il dettaglio per ogni categoria.

<table width="100%" border="1" cellspacing="2" cellpadding="2">
<tr>
<%
categoria_scelta = TRIM(Request("categoria"))

sqlString = "SELECT * FROM accessori GROUP BY id_categoria"
    
SET RS = Conn.Execute(sqlString)  
WHILE NOT RS.EOF
  
IF RS("id_categoria") = clng(TRIM(Request("categoria"))) Then
    
Response.Write("<td valign=""top"" colspan=""2""><strong>")
Response.Write("<a href=""elenco_prodotti_compresso.asp"">")
Response.Write UCASE(RS("categoria"))
Response.Write("</a>")
Response.Write("</strong><br />")
Response.Write("<table border=""1"" cellspacing=""2"" cellpadding=""2"">")
Response.Write("<tr><td> </td><td>Codice</td></tr><tr>")
    
sqlString = "SELECT * FROM accessori WHERE attiva=1 And id_categoria=" & RS("id_categoria")
  
  
SET RS1 = Conn.Execute(sqlString)
WHILE NOT RS1.EOF
  
Response.Write("<td><img src=""images/accessori/")
sqlString = "SELECT * FROM immagini WHERE attiva=1 and sottocategoria=" & RS("id_categoria")
SET RS2 = Conn.Execute(sqlString)
WHILE NOT RS2.EOF
  
Response.Write RS2("img")
Response.Write(""" /></td>")
RS2.MoveNext
WEND
  
Response.Write("<td><a href=""dettaglio.asp?id=")
Response.Write RS1("id")
Response.Write(""">")
Response.Write RS1("codice")
Response.Write("</a></td></tr>")

RS1.MoveNext
WEND
Response.Write("</table>")
Else
    
Response.Write("<td valign=""top"" colspan=""3""><strong>")
Response.Write("<a href=""elenco_prodotti.asp?categoria=")
Response.Write RS("id_categoria")
Response.Write(""">")
Response.Write UCASE(RS("categoria"))
Response.Write("</a>")
Response.Write("</strong>")
  
End If
  
Response.Write("</td></tr>")
RS.MoveNext
WEND
%>
</table>


Io vorrei riuscire a mostrare tutti i prodotti, ma facendo in modo che per tutti quelli dove c'è la stessa immagine, venga caricata un'immagine sola e non tante immagini (sempre uguali) quanti sono i prodotti.
Il criterio per raggruppare i prodotti con la stessa immagine è la sottocategoria: prodotti che appartengono alla stessa sottocategoria, hanno la stessa immagine.

Questo è ciò che ottengo io:
CLICCA QUI PER L'IMMAGINE 1
Questo è ciò che vorrei ottenere:
CLICCA QUI PER L'IMMAGINE 2

Ho fatto un po' di esperimenti, ma non riesco ad arrivare al punto.

Visto che sto usando una tabella, io pensavo di contare quante sono le righe per ogni sottocategoria di ogni categoria e poi far condividere la stessa immagine per più righe, impostando la proprietà rowspan al valore uguale al conto fatto.

Sto brancolando un po' nel buio...

Qualche suggerimento?

Grazie!

Modificato da Roby140569 il 07 ottobre 2008 19.14 -

Modificato da Roby140569 il 07 ottobre 2008 19.16 -

Modificato da Roby140569 il 08 ottobre 2008 10.37 -
RE: Raggruppare dati
Roby140569 non è online. Ultima attività: 20/10/2008 12.29.24Roby140569
Inserito il: 08 ottobre 2008 16.31
2 messaggi dal 28 nov 2007 Istalla Microsoft Silverlight!
Leggete in tanti, ma nessuno risponde... è così difficile? O è così banale?

Vai a:
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.


PeppeDotNet - 1000 pt
gghi - 310 pt
fabrica - 50 pt

Iscriviti anche tu e raccogli punti. Questo mese in palio VS 2008, SQL Prompt e 1 ebook!


COMMUNITY
ULTIMI MESSAGGI


IN EVIDENZA
MISC
Powered by .db Forums