webForumDet fria alternativet

Loop med 2 rs?

7 svar · 334 visningar · startad av timedia

timediaMedlem sedan maj 2001420 inlägg
#1

Den loopar men skriver bara ut en 'titel'. Hur ska jag göra detta?

Set UserRecordset = Server.CreateObject("ADODB.Recordset")
Set UserRecordset2 = Server.CreateObject("ADODB.Recordset")

Name0 = Request.Cookies("interUID")

SQLString = "SELECT * FROM MemberRec WHERE MrMemberSignatur = '" & Name0 & "' ORDER BY MemberRecID"

  UserRecordset.Open SQLString, DatabaseConnection
  
  
  SQLString2 = "SELECT Id, Titel FROM Recension WHERE Id = " & objMemberFID

UserRecordset2.Open SQLString2, DatabaseConnection

Do While Not UserRecordset.EOF
'Set objMemberFID2 = UserRecordset2("Titel")
Response.Write "<a href='red_inlegg2.asp?ID=" & objMemberID & "'>Redigera</a> » "

Response.Write " " & UserRecordset2("Titel")

Response.Write "<br>"
UserRecordset.MoveNext

Loop 
UserRecordset.Close
UserRecordset2.Close

  DatabaseConnection.Close
@ndersMedlem sedan juni 200032 969 inlägg
#2

Jag kan inte se att varken objMemberFID eller objMemberID får sitt värde någonstans, så det borde inte fungera överhuvudtaget.

Anledningen till att bara en titel skrivs ut är enkel: du loopar ju inte ditt andra recordset överhuvudtaget. Dessutom skulle din kod må bra av lite schysst indentering.

timediaMedlem sedan maj 2001420 inlägg
#3

OK, men hur gör man när man ska loopa 2 rs samtidigt?

TravoniMedlem sedan okt. 20041 556 inlägg
#4

Du skulle inte behöva två recordset till det där.
Se bara till att du har ett unikt id i recentionstabellen som refererar till medlemmen. schysst indentering ---->

Dim connection, rs
Set connection = "Ditt connectionobjekt"

Set rs = connection.execute("SELECT r.id,r.titel FROM MemberRec m INNER JOIN Recension ON r.id=m.MrMemberSignatur WHERE MrMemberSignatur = '"& Name0 &"'")

If not rs.eof then
	Do While not rs.eof
		Response.Write "<a href=""red_inlegg2.asp?ID=" & rs(0) & """>Redigera</a> » "& rs(1) & "<br>"
	rs.movenext
	Loop
Else
	Response.Write "Det finns inga poster!"
End if

rs.close : connection.close
@ndersMedlem sedan juni 200032 969 inlägg
#5

OK, men hur gör man när man ska loopa 2 rs samtidigt?

Du har ju en do while-loop. Lägg den andra loopen inne i den.

Travoni, du är för snäll... ;)

TravoniMedlem sedan okt. 20041 556 inlägg
#6

Visst, är jag. Dessutom med schysst indentering. ;)

Indentering gör mig kåååååålasugen...

timediaMedlem sedan maj 2001420 inlägg
#7

Tack, nu är jag nästan där.

Set rs = connection.execute("SELECT MrFilmID, MrMemberSignatur FROM MemberRec INNER JOIN Recension ON recension.id=MemberRec.MrFilmID WHERE MrMemberSignatur = '"& Name0 &"' ORDER BY Recension.titel")

Hur gör jag när jag vill skriva ut fältet 'Titel' som ligger i tabellen Recension? Detta funkar ju inte:

Response.Write "<a href=""red_inlegg2.asp?ID=" & rs(0) & """>Redigera</a> » "& [B]rs("recension.titel")[/B] & "<br>"
J.N.Medlem sedan apr. 20031 660 inlägg
#8

HEJ!

Om du bara tar med titel i de fält du hämtar, kan du visa det med rs("titel").

Nu märker du också, kanske, problemet med att använda positioner i recordset, rs(0); när du lägger till andra fält kan det bli fel.

265 ms totalt · 3 externa anrop · v20260731065814-full.30151723
140 ms — hämta forumlista (db)
122 ms — hämta statistik (db)
125 ms — hämta tråd, inlägg och bilagor (db)