webForumDet fria alternativet

Inner Join problem,

10 svar · 293 visningar · startad av CatZ

CatZMedlem sedan jan. 20022 440 inlägg
#1
<%
Case "info"
Set rs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT klubbar.*, klubbdag.*" &_
" FROM Klubbar INNER JOIN KlubbDag ON Klubbar.KrID = KlubbDag.KrID " &_
" WHERE Klubbar.KrID = " & Request.Querystring("ID")
rs.Open SQL, OBJdbConnection, 3, 3
%>
 <%=rs("KrNamn")%>
<%=rs("KrGata")%><br><%=rs("KrPostnr")%> <%=rs("KrStad")%><br>
<%=rs("KrTele")%>

' Koden nedan ger problem'
<%=rs("dag")%> - <%=rs("tid")%>

<%=rs("dag")%> och <%=rs("tid")%> hämtas från tabellen klubbdag... men enbart ett värde hämtas, om jag har måndag, tisdag onsdag hämtas bara ett värde :(

Vad har jag gjort för fel ?

Antar att jag måste skapa en funktion för det?

<% For All rs("dag") 
response.write("<%=rs("dag")%> - <%=rs("tid")%><br>")
LarsGMedlem sedan dec. 200012 464 inlägg
#2

Du behöver en loop

<%Case "info"Set rs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT klubbar.*, klubbdag.*" &_
" FROM Klubbar INNER JOIN KlubbDag ON Klubbar.KrID = KlubbDag.KrID " &_
" WHERE Klubbar.KrID = " & Request.Querystring("ID")
rs.Open SQL, OBJdbConnection, 3, 3
if not rs.eof then
 response.write rs("KrNamn") & " " & rs("KrGata") & "<br>" & _
rs("KrPostnr") & " " & rs("KrStad") & "<br>" & rs("KrTele")
' Koden nedan ger problem'
while not rs.eof
 response.write rs("dag") &  "-"  & rs("tid") & "<br>"
 rs.movenext
wend
else
response.write "Det fanns inga poster <br>"
end if
CatZMedlem sedan jan. 20022 440 inlägg
#3

Tack det funkar :) nu kommer bara det svåra med att skriva alla <td> och <tr> och sånt i response.write :e

CatZMedlem sedan jan. 20022 440 inlägg
#4

...

CatZMedlem sedan jan. 20022 440 inlägg
#5
<%
if not rs.eof then
response.write rs("KrNamn") & _
"</td>" & "</tr>" & "<tr class=td2 valign=top>" & "<td>" & _ 
"<strong>" & "Adress:" & "</strong>" & "<br>" & _
rs("KrGata") & "<br>" & _
rs("KrPostnr") & " " & rs("KrStad") & "<br>" & _
rs("KrTele") & _
"</td>" & "<td>" & _
"<strong>" & "Länkar" & "</strong>" & "<br>" & _
"<a href=http://db.bridgefederation.se/Klubb.asp?KlubbID" & rs("KrMpnID") & " target=_blank>" & "Medlem på Nätet" & "</a>" & "<br>" & _
"<a href=http://" & rs("KrLank") & " target=_blank>" &  "Hemsida" & "</a>" & _
"</td>" & "<td>" & _
"<strong>" & "Spelkvällar:" & "</strong>" & "<br>" & _
while not rs.eof		
response.write rs("dag") &  " - "  & rs("tid") & "<br>"
rs.movenext
wend
response.write "</td>" & "<td>" & "</td>" & "</tr>" & "</table>" &_
response.write "</td>" & "<td>" & "</td>" & "</tr>" & "</table>" 
Else
response.write "Inga Spelkvällar"
end if

Får det inte att fungera :( får upp:
Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A03EA)
Syntaxfel
/sydostra/klubbar/TMP36fcr2ldq.asp, line 60
while not rs.eof

doggelitoMedlem sedan juni 20003 076 inlägg
#6

ta bort slutdelen på raden ovanför:
"<strong>" & "Spelkvällar:" & "</strong>" & "<br>"

CatZMedlem sedan jan. 20022 440 inlägg
#7

of course, tack så mycket :)

CatZMedlem sedan jan. 20022 440 inlägg
#8

Finns det något annat sätt att loopa ut värden på? Går det med DO loopen istället ?

CatZMedlem sedan jan. 20022 440 inlägg
#9
Set rs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT KrNamn, klubbdag.KrID, dag, tid" &_
" FROM Klubbar INNER JOIN Klubbdag ON Klubbar.KrID = KlubbDag.KrID " &_
" WHERE dag = " & Request.Querystring("dag") &_
" ORDER BY KlubbDag.dag, Klubbar.KrNamn"
rs.Open SQL, OBJdbConnection, 3, 3
while not rs.eof
response.write rs("dag") & " - " & rs("tid") & " - " & rs("KrNamn") & " - " & "<br>"
rs.movenext
wend

Ger följande fel:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
/klubbar/klubbar.asp, line 77

1 fråga till!
Kan man göra en INSERT i 2 tabeller samtidigt? I så fall hur? Tänkte mig lite som INNER JOIN typ

LarsGMedlem sedan dec. 200012 464 inlägg
#10
Set rs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT KrNamn, klubbdag.KrID, dag, tid" &_
" FROM Klubbar INNER JOIN Klubbdag ON Klubbar.KrID = KlubbDag.KrID " &_
" WHERE dag = '" & replace(Request.Querystring("dag"),"'","''") &_
"' ORDER BY KlubbDag.dag, Klubbar.KrNamn"

Om du behöver göra operationer mot olika tabeller så får du använda ett statement per operation och tabell. Om du vill att de skall ske som en operation så får du göra dom inom en transaktion.

CatZMedlem sedan jan. 20022 440 inlägg
#11

Tack återigen LarsG :) Jag förstår nu varför du blev vald till årets medlem 2001 :)

129 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)