Ciao a tutti, ho un database con due tabelle relazionate tipo uno a molti. Sulla prima tabella ho 31 records con 31 nomi di sezioni (uno). Al relativo ID di questa tabella é relazionato il campo dedicato rel_id dell'altra tabella contenente i contenuti delle sezioni (molti).
Ho questo codice con due cicli recordset nidificati, ma non funziona e non capisco perché, ovviamente se cambio la seconda select e metto:
rsImg.Open "SELECT * FROM links WHERE rel_id = 1", cn, 1
funziona, ma ovviamente per tutte le sezioni viene visualizzato il medesimo contenuto, se invece metto come nel codice sotto, si pianta. Ho anche provato a fare una sql estrapolando i dati dalle due tabelle, ma non sono riuscito. Qualcuno puó dirmi dove sbaglio?
Grazie mille!
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file = "setup.asp"-->
<%
Call CnOpen()
Set rsImg = Server.CreateObject("ADODB.Recordset")
Set rsLoop = Server.CreateObject("ADODB.Recordset")
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Paginazione a colonne sui record di un db in ASP</title>
</head>
<body>
<%
rsLoop.Open "SELECT * FROM sections", cn, 1
id = rsLoop("id")
While rsLoop.EOF = False
%>
<table border="1">
<tr>
<td colspan="3"><%=rsLoop("section")%><%=rsLoop("id")%></td>
</tr>
<tr>
<%
' IMPOSTO A 0 IL CONTATORE
contatore = 0
' APRO IL RECORDSET
rsImg.Open "SELECT * FROM links WHERE rel_id = ",&id, cn, 1
' ESEGUO IL CICLO
While rsImg.EOF = False
' IMPOSTO LA PAGINAZIONE A 3 COLONNE ED N RIGHE
' IN FUNZIONE DEL NUMERO DI RECORD PRESENTI NEL DB
If contatore = 3 Then
contatore = 0
Response.Write "</tr><tr>"
End If
%>
<td><%=rsImg("url_image")%></td>
<%
rsImg.MoveNext
' INCREMENTO IL VALORE DEL CONTATORE
contatore = contatore + 1
Wend
rsImg.Close
%>
</tr>
</table>
<%
rsLoop.MoveNext
Wend
rsLoop.Close
%>
</body>
</html>
<%
Call CnClose()
%>
Ho questo codice con due cicli recordset nidificati, ma non funziona e non capisco perché, ovviamente se cambio la seconda select e metto:
rsImg.Open "SELECT * FROM links WHERE rel_id = 1", cn, 1
funziona, ma ovviamente per tutte le sezioni viene visualizzato il medesimo contenuto, se invece metto come nel codice sotto, si pianta. Ho anche provato a fare una sql estrapolando i dati dalle due tabelle, ma non sono riuscito. Qualcuno puó dirmi dove sbaglio?

Grazie mille!
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file = "setup.asp"-->
<%
Call CnOpen()
Set rsImg = Server.CreateObject("ADODB.Recordset")
Set rsLoop = Server.CreateObject("ADODB.Recordset")
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Paginazione a colonne sui record di un db in ASP</title>
</head>
<body>
<%
rsLoop.Open "SELECT * FROM sections", cn, 1
id = rsLoop("id")
While rsLoop.EOF = False
%>
<table border="1">
<tr>
<td colspan="3"><%=rsLoop("section")%><%=rsLoop("id")%></td>
</tr>
<tr>
<%
' IMPOSTO A 0 IL CONTATORE
contatore = 0
' APRO IL RECORDSET
rsImg.Open "SELECT * FROM links WHERE rel_id = ",&id, cn, 1
' ESEGUO IL CICLO
While rsImg.EOF = False
' IMPOSTO LA PAGINAZIONE A 3 COLONNE ED N RIGHE
' IN FUNZIONE DEL NUMERO DI RECORD PRESENTI NEL DB
If contatore = 3 Then
contatore = 0
Response.Write "</tr><tr>"
End If
%>
<td><%=rsImg("url_image")%></td>
<%
rsImg.MoveNext
' INCREMENTO IL VALORE DEL CONTATORE
contatore = contatore + 1
Wend
rsImg.Close
%>
</tr>
</table>
<%
rsLoop.MoveNext
Wend
rsLoop.Close
%>
</body>
</html>
<%
Call CnClose()
%>