PDA

View Full Version : *asp* estrarre dati comtemporaneamente da due tabelle


SteR9
30-01-2004, 18:20
sto scrivendo delle pagine in asp per creare dei questionari...
ho la necessità di estrarre contemporaneamente i dati da due tabelle..una è quella delle domande e l'altra è quella delle risposte...
il tutto perchè devo andare a inserire la domanda in una tabella
e sotto le risposte...
il mio problema è che proprio non so come fare...perchè se uso un ciclo do while not posso usare solo un recordset (Credo con due non riesco) alla volta...e con le query sql non sono molto pratico..pensavo di fare
un raggruppamento ma non funziona...
illuminatemi!
grazie :)

matpez
30-01-2004, 18:39
Secondo me la soluzione migliore è una query che collega i due campi....

PS: Lavori in Access ?

Se zippi il database e ti sta qui postalo così vedo com'è fatto e ti creo la query per vedere entrambi i dati! :p

SteR9
30-01-2004, 18:46
Originariamente inviato da matpez
Secondo me la soluzione migliore è una query che collega i due campi....

PS: Lavori in Access ?

Se zippi il database e ti sta qui postalo così vedo com'è fatto e ti creo la query per vedere entrambi i dati! :p
ok per ora ho messo solo due domande di prova...con 3 risposte per ogni domanda tanto così per provare...
grazie!

matpez
30-01-2004, 19:51
Io opterei per aprire due recordset...con due cicli while incrociati!

Ad ogni giro prendi l'ID della domanda e fai una query passando l'ID della domanda nella tabelle delle rispose.

Io organizzerei il database come ti posto ora :)

SteR9
30-01-2004, 20:14
Originariamente inviato da matpez
Io opterei per aprire due recordset...con due cicli while incrociati!

Ad ogni giro prendi l'ID della domanda e fai una query passando l'ID della domanda nella tabelle delle rispose.

Io organizzerei il database come ti posto ora :)
il database l'ho strutturato così perchè volevo creare più questionari....quindi ho creato una tabella che contiene i vari tipi di questionari...cmq avevo provato a fare così

Set objRecordSet = Server.CreateObject("ADODB.Recordset")
Set objRecordset = objConnessione.Execute("SELECT * FROM Domande")
Set objRecordSetRisposte = Server.CreateObject("ADODB.Recordset")
Set objRecordsetRisposte = objConnessione.Execute("SELECT * FROM testoRisposta")

do while not objrecordsetRisposte.Eof

%>
<table width="75%" border="1">
<tr>
<td width="87%"><%response.Write(objrecordset.Fields("TestoDomanda"))%></td>
<td width="13%"><%response.Write(objrecordsetRisposte.Fields("TestoRisposta"))%></td>
</tr>
</table>
<%
objrecordsetRisposte.MoveNExt
objrecordset.MoveNext
loop

ma non avevo pensato a mettere due while incrociati...ora provo...

cionci
31-01-2004, 10:09
IMHO due while ed un solo recordset:

SELECT Domande.IdDomanda, Domande.TestoDomanda, testoRispsta.TestoDomanda FROM testoRisposta, Domande WHERE testoRispsta.IdDomanda = Domande.IdDomanda;


Dim IDDomanda

do while not objrecordset.Eof

%>
<table width="75%" border="1">
<tr>
<td width="87%"><%response.Write(objrecordset.Fields("TestoDomanda"))%></td>
<%
IDDomanda = objrecordset.Fields("IdDomanda")
Do While Not objrecordset.Eof Or _
IDDomanda = objrecordset.Fields("IdDomanda")
%>
<td width="13%"><%
response.Write(objrecordset.Fields("TestoRisposta"))%></td>
<%
objrecordset.MoveNext
Loop
%>
</tr>
</table>
<%
If Not objrecordset.Eof Then
objrecordset.MoveNext
EndIf
loop