74 messaggi dal 24 novembre 2001
Buon "ognissanti" a tutti!!!
ho una tab in db mysql, che contiene le categorie, ho un altra tab che contiene le sotto categorie.
ora vorrei fare in modo che mi vengano visualizzate così:

storia (categoria) arte(categoria)
bruzi, romani, etruschi picasso, van gogh

altra categoria
pippo,pluto,topolino

ecc.,ecc.,

ora io ho provato con una innerjoin e sono riuscito a fare questo:

storia arte
bruzi picasso

storia altra categoria
romani pippo

arte storia
van gogh etruschi

ecc.ecc.
come posso fare in modo che per ogni categoria mi metta sotto le relative sotto categorie?
grazie mille raga
279 messaggi dal 08 maggio 2001
1 crea due tabelle distinte categorie e sottocategorie; nella tabella categoria inserisci i seguenti campi:

IDcategoria
nomecategoria
subcatID
.....

nella tabella sottocategorie inserisci invece

IDsottocategoria
nomesottocategoria
categoriaID (campo comune con IDcategoria)
.....

A questo punto non ti rimane altro che una semplice connessione al DB
e quindi:

<%
strConn = "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../mdb-database/catalogo.mdb")
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open StrConn
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM categoria"
rs.open sql, conn, 1, 3
%>

<table><tr><td>Elenco Categorie</td></tr><tr>
<%
do while not rs2.eof
catID = rs("IDcategoria")
%>
<td><% = nomecategoria %> </td></tr>
<td><%=visualizza_subcat %> </td> </tr>
<%
rs.movenext
loop
rs.Close
set rs = Nothing
conn.Close
set conn = Nothing
%>
</table>

<% function visualizza_subcat
sql = "SELECT * FROM sottocategorie where catID = " & catID &""
Set rs2 = Server.CreateObject("ADODB.Recordset")
rs2.Open sql, conn ,1,3%>
<%do while not rs2.eof %>
<% = rs2("nomesottocategoria") %>
<%
rs2.movenext
loop%>
<%
rs2.Close
set rs2 = Nothing
end function
%>

Ed ecco che il gioco è fatto infatti a video avrai:

abbigliamento
uomo
donna
bambino
accessori
auto
moto
casa

e cosi via ....
74 messaggi dal 24 novembre 2001
Ciao carissimi, ci tengo a ringraziarvi per l'interessamento e le risposte date. X djwebmaster: veramente ho già risolto con un ciclo do while, chiuso in un altro ciclo do while con la seconda stringa(uguale a quella che mi hai postato). Ho notato che nel tuo sistema hai usato una function per la seconda query, pensi che sia meglio il tuo sistema(intendo in termini di: velocità,carico del server e caricamneto della pagina) o posso usare tranquillamente il mio?
te lo posto:

<%
Set ObjConn = Server.CreateObject("ADODB.Connection")
ObjConn.Open "driver=MySQL;server=127.0.0.1;uid=acnide;pwd=peppe;database=news"
StrSql = "SELECT * FROM Categorie"
Set ObjRst = Server.CreateObject("ADODB.Recordset")
Set ObjRst1 = Server.CreateObject("ADODB.Recordset")
ObjRst.Open StrSql, ObjConn, 3, 3
Contatore=0
Do While Not ObjRst.Eof
StrSql1 = "SELECT * FROM Sottocategorie WHERE IDCat =" & ObjRst(0) & ";"
ObjRst1.Open StrSql1, ObjConn, 3, 3
Contatore=Contatore+1
If Contatore Mod 2 <> 0 Then 'Dispari
%>
<tr>
<td width="50%" valign="top"><B><%=ObjRst(1)%></B>
<%
Do while Not Objrst1.Eof
%>
<a href="articolo.asp?id=<%=ObjRst1("sott_id")%>">,<%=ObjRst1("titolo")%></a>
<%
ObjRst1.MoveNext
Loop
Else 'Pari
%>
<td width="50%" valign="top"><B><%=ObjRst(1)%></B>
<%
Do while Not Objrst1.Eof
%>
<a href="articolo.asp?id=<%=ObjRst1("sott_id")%>">,<%=ObjRst1("titolo")%></a>
<%
ObjRst1.MoveNext
Loop
%>
</td>
</tr>
<%
End If
ObjRst1.Close
ObjRst.MoveNext
Loop
ObjRst.Close
ObjConn.Close
Set ObjConn = nothing
Set ObjRst = nothing
Set ObjRst1 = nothing
%>

Grazie mille
74 messaggi dal 24 novembre 2001
L'uno vale l'altro? ti ringrazio tantissimo
alla prox!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12 messaggi dal 11 maggio 2004
ciao e se volessi mettere il link alla sottocategoria passando quindi i parametri in querystring per poi estrarre i prodotti della sottocategoria?


ho utilizzato la tua funzione

<% function visualizza_subcat
sql = "SELECT * FROM sottocategorie where catID = " & catID &""
Set rs2 = Server.CreateObject("ADODB.Recordset")
rs2.Open sql, conn ,1,3%>
<%do while not rs2.eof %>
<% = rs2("nomesottocategoria") %>
<%
rs2.movenext
loop%>
<%
rs2.Close
set rs2 = Nothing
end function
%>

grazie dell'aiuto
elisa
supponendo di avere un campo id identificativo di ogni sottocategoria:


<code><a href="sottocategoria.asp?id=<%=rs2("id")%>"><% = rs2("nomesottocategoria") %></a></code>


la pagina sottocategoria.asp se lo richiamerà tramite il valore della querystring:

<code>id = request.QueryString("id")</code>

e la relativa query

Alberto Biancardo

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.