Problema select su recordset nidificati

surya

Nuovo Utente
9 Giu 2009
8
0
0
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()
%>
 

surya

Nuovo Utente
9 Giu 2009
8
0
0
Ciao Pole, grazie per la risposta. Ho appena risolto, in realtá quella sintassi andava bene, era la parola id che dava fastidio, stranissimo ho provato a cambiare nome della variabile e tutto va bene. Questo script carica da un database dati e li dispone a quadricola come da tutorial di Luca Ruggiero trovato su mrwebmaster.it

I dati vengono estrapolati da due tabelle relazionate, ottimo per rappresentare marche di aziende e relativi prodotti.

Adesso funziona. Posto qui sotto il codice corretto in modo che rimanga per chi un domani dovesse avere bisogno. Adesso sto cercando qualcosa che mi estrapoli i dati di forma random, se conosci qualche tutorial che mi aiuti a farlo segnalamelo, grazie.

Codice:

<%@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" />
<link href="style.css" rel="stylesheet" type="text/css" />
<title>categorie e prodotti</title>
</head>
<body>
<%
rsLoop.Open "SELECT * FROM sections", cn, 1
While rsLoop.EOF = False
sect = rsLoop("id")
%>
<table cellpadding="3" cellspacing="3" align="center">
<tr valign="top">
<td colspan="5" align="left"><h1><%=rsLoop("section")%></h1></td>
</tr>
<tr>
<%
' IMPOSTO A 0 IL CONTATORE
contatore = 0
' APRO IL RECORDSET
rsImg.Open "SELECT TOP 15 * FROM links WHERE rel_id = "&sect, 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 = 5 Then
contatore = 0
Response.Write "</tr><tr>"
End If
%>
<td><a href="<%=rsImg("url_site")%>" target="_blank" title="<%=rsImg("descriptions")%>"><img src="<%=rsImg("url_image")%>" border="4" alt="" /></a></td>
<%
rsImg.MoveNext
' INCREMENTO IL VALORE DEL CONTATORE
contatore = contatore + 1
Wend
rsImg.Close
%>
</tr>
<tr>
<td colspan="5" align="right"><h3><a target="_blank" href="details.asp?sec=<%=sect%>">More details of <%=rsLoop("section")%></a></h3></td>
</tr>
</table>
<%
rsLoop.MoveNext
Wend
rsLoop.Close
%>
</body>
</html>
<%
Call CnClose()
%>
 

PoLe

MRW Moderator
6 Giu 2005
2.210
3
0
37
.: Venezia :.
www.bzconsulting.it
Ciao Pole, grazie per la risposta. Ho appena risolto, in realtá quella sintassi andava bene..
...
Figurati :)

Comunque no, non andava bene quella sintassi, perchè originariamente la sintassi che hai postato era:
rsImg.Open "SELECT * FROM links WHERE rel_id = ",&id, cn, 1
mentre ora, correttamente, hai tolto quella virgola e quindi il tutto funziona ;)

:byebye;
 

surya

Nuovo Utente
9 Giu 2009
8
0
0
Hai ragione é vero! Lo vedo adesso che mi stai facendo notare questa cosa, io dalla tua risposta avevo capito che ci voleva una seconda & e la virgola non l'avevo completamente considerata. Il fatto strano é che si piantava, non dava nessun errore di sintassi!

Certo che la mia concentrazione é davvero alta eh?... :dormo:

Grazie ancora!
:)
 

surya

Nuovo Utente
9 Giu 2009
8
0
0
ciao, ritorno sullo stesso post per comoditá.

Vorrei implementare sul codice che ho postato sopra, l'estrazione dei primo quindici records di forma random.

Facendo ricerche, sto cercando di implementare per la precisione il codice contenuto in questo tutorial

https://www.mrw.it/asp/articoli/record-casuali-asp-access_850.html

La cosa non mi sta riuscendo propriamente bene, nel senso che i dati vengono si messi random ma non lo stesso numero per tutte le sezioni.

es. la prima macrocategoria ne mette 15 random, la seconda macrocategoria ne mette 7 random, la terza 3, ecc.

Se qualcuno avesse una dritta, grzie mille.

posto il codice del body per brevitá

<body>
<%
rsLoop.Open "SELECT * FROM sections", cn, 1
While rsLoop.EOF = False
sect = rsLoop("id")
%>
<table cellpadding="3" cellspacing="3" align="center">
<tr valign="top">
<td colspan="5" align="left"><h1><%=rsLoop("section")%></h1></td>
</tr>
<tr>
<%
' IMPOSTO A 0 IL CONTATORE
contatore = 0
' APRO IL RECORDSET
rsImg.Open "SELECT * FROM links WHERE rel_id = "&sect, cn, 1
'rsImg.MoveFirst
Randomize()
rsImg.Move Rnd * CInt(rsImg.RecordCount) - 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 = 5 Then
contatore = 0
Response.Write "</tr><tr>"
End If
%>
<td><a href="<%=rsImg("url_site")%>" target="_blank" title="<%=rsImg("descriptions")%>"><img src="<%=rsImg("url_image")%>" border="4" alt="" /></a></td>
<%
rsImg.MoveNext
' INCREMENTO IL VALORE DEL CONTATORE
contatore = contatore + 1
Wend
rsImg.Close
%>
</tr>
<tr>
<td colspan="5" align="right"><h3><a target="_blank" href="gallery.asp?sec=<%=sect%>">More Galleries of <%=rsLoop("section")%></a></h3></td>
</tr>
</table>
<%
rsLoop.MoveNext
Wend
rsLoop.Close
%>
</body>
</html>
<%
Call CnClose()
%>
 
Discussioni simili
Autore Titolo Forum Risposte Data
L problema con query select PHP 2
T problema con select dinamica con jquery Javascript 0
M [PHP] Problema con query select PHP 2
T [php] problema creazione query select-where PHP 5
webmachine [PHP][MYSQL] Problema con le SELECT PHP 5
webmachine [PHP] Problema: Stampare tutte le occorrenza di una SELECT PHP 2
H problema con select dinamiche e javascript Javascript 0
F Problema attivare/disattivare immagine calendario datepicker da select jQuery 1
P problema: la select della città mi va a fondo pagina invece di stare a fianco PHP 7
I problema <select> PHP 0
R Problema Select Php PHP 0
F Problema selezione dinamica select/jsp/mysql Javascript 0
P Problema multi select form jQuery 6
Virginia86 [risolto] Problema select e verifica form PHP 38
A Problema recupero valori da select con chiamata ajax Ajax 1
B problema select PHP 3
H Problema con MySQL e PHP, dopo aver fatto una SELECT non ottengo alcun risultato PHP 7
L Problema Select con Javascript e nodi Dom XML. Javascript 0
S Problema con inserire la select in un array PHP 2
L problema option select senza database PHP 2
E problema con select dinamica - doctype - ie ASP.NET 4
S Problema con 2 funzioni:array,select dinamica Javascript 21
E problema di sintassi su una select (plugin) PHP 5.3 PHP 3
EffeElle Php problema query select PHP 5
T Problema con select dinamica Javascript 2
M problema con il tag <select> PHP 3
F Problema select dinamiche con php e jquery jQuery 1
C Problema con il select PHP 1
P problema passaggio valore javascript a select su pagine php Javascript 0
C Problema SELECT, AND, OR PHP 2
S Problema gestione select multipla Javascript 0
M problema con select jquery e php PHP 0
M problema select autoaggiornata Ajax 0
U Come risolvo questo problema col pulsante SELECT?? PHP 1
P Problema UNION ALL SELECT PHP 3
M Select scelta sottofondo - problema firefox Javascript 1
A Problema: creare nuove "option" di una select-list con javascript Javascript 1
R Problema su select Javascript 1
F NetBeans problema creazione progetto Java Windows e Software 0
M Problema con Try Catch PHP 0
C problema seo + cerco esperto SEO e Posizionamento 1
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
A Problema, non so, di scale() o transform, oppure altro? HTML e CSS 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1

Discussioni simili