if NOT objRS5.EOF OR objRS6.EOF
betyder "Om objRS5 inte är tom eller om objRS6 är tom"
If NOT objRS5.EOF OR NOT objRS6.EOF
eller
If NOT (objRS5.EOF AND objRS6.EOF)
..är det som gäller
6 svar · 313 visningar · startad av Vinnaren
hej
jag har fått problem med följande kod:
If NOT objRS5.EOF OR objRS6.EOF Then
Response.Write "<div id=""startsidan_silly"">"
Response.Write "<img alt=""Silly Season"" title=""Silly Season"" src=""/bilder/silly.png"" />"
If NOT objRS5.EOF THEN
Response.Write ""&objRS5("nyRubrik")&""
END IF
If NOT objRS6.EOF THEN
Do While Not objRS6.EOF
Set objRS7 = objConn.Execute("SELECT * FROM klubbar WHERE lagID= "&objRS6("nyKlubbID"))
If NOT objRS7.EOF THEN
Response.Write "<br />"&objRS7("lagNamn")&""
END IF
objRS6.MoveNext
Loop
objRS6.Close
Set objRS6 = nothing
END IF
Response.Write "</div>"
END IF
Det är första raden jag har problem med tror jag.
If NOT objRS5.EOF OR objRS6.EOF
Alltså när inte objRS5 eller objRS6 är tom så ska det visas, men det vill inte fungera. har provat med bara
If NOT objRS6.EOF
Då fungerar det, men när jag har bägge med så kommer inget fram.
Hur löser jag detta?
Tacksam för all hjälp jag kan få :OO
if NOT objRS5.EOF OR objRS6.EOF
betyder "Om objRS5 inte är tom eller om objRS6 är tom"
If NOT objRS5.EOF OR NOT objRS6.EOF
eller
If NOT (objRS5.EOF AND objRS6.EOF)
..är det som gäller
tack emission, det fungerade :bire
har nu fått ett annat problem istället :r
har koden:
IF NOT Request.QueryString("arID") = "" THEN
Set objRS = objConn.Execute("SELECT spelare_statistik.statID, spelare_statistik.playerID, spelare_statistik.statSasongID, spelare_statistik.klubbID, spelare_statistik.klubbNamn, spelare_statistik.statMatcher, spelare_statistik.statMal, spelare_statistik.statAssist, spelare_statistik.statUtvisad, spelare_statistik.statPlusMinus, spelare_statistik.statRaddning, spelare_statistik.statInMal, spelare_statistik.statNollor, nhl_sasonger.arID, nhl_sasonger.arAr1, nhl_sasonger.arAr2 FROM nhl_sasonger INNER JOIN spelare_statistik ON nhl_sasonger.arID = spelare_statistik.statSasongID WHERE arID="&Request.QueryString("arID")&" ORDER BY arAr1 DESC, arAr2 DESC, statMal + statAssist DESC")
ELSE
Set objRS = objConn.Execute("SELECT spelare_statistik.statID, spelare_statistik.playerID, spelare_statistik.statSasongID, spelare_statistik.klubbID, spelare_statistik.klubbNamn, spelare_statistik.statMatcher, spelare_statistik.statMal, spelare_statistik.statAssist, spelare_statistik.statUtvisad, spelare_statistik.statPlusMinus, spelare_statistik.statRaddning, spelare_statistik.statInMal, spelare_statistik.statNollor, nhl_sasonger.arID, nhl_sasonger.arAr1, nhl_sasonger.arAr2 FROM nhl_sasonger INNER JOIN spelare_statistik ON nhl_sasonger.arID = spelare_statistik.statSasongID ORDER BY arAr1 DESC, arAr2 DESC, statMal + statAssist DESC")
END IF
Do While ar=objRS("arAr1")
Nu vill jag att den ska loopa runt sålänge ar=objRS("arAr1") eller så länge det det finns några poster i databasen.
Det fungerar så länge Request.QueryString("arID") = "" (är tom) men när den får ett värde så kommer den hämtade texten fram plus ett felmeddelande:
error '80020009'
Exception occurred.
index.asp, line 1126
på raden:
Do While ar=objRS("arAr1")
Hur löser jag detta så det fungerar både när arID har ett värde och när den är tom?? :stud
"Man" brukar lägga till en 'if' efter en databashämtning, detta utifall om recordsetet är tomt.
Sen ett tips: använd alias på tabellnamnen så slipper selecten bli så himla lång och svårläst! :)
IF NOT Request.QueryString("arID") = "" THEN
Set objRS = objConn.Execute("SELECT s.statID, s.playerID, s.statSasongID, s.klubbID, s.klubbNamn, s.statMatcher, s.statMal, s.statAssist, s.statUtvisad, s.statPlusMinus, s.statRaddning, s.statInMal, s.statNollor, n.arID, n.arAr1, n.arAr2 FROM nhl_sasonger n INNER JOIN spelare_statistik s ON n.arID = s.statSasongID WHERE n.arID="&Request.QueryString("arID")&" ORDER BY n.arAr1 DESC, n.arAr2 DESC, statMal + statAssist DESC")
ELSE
Set objRS = objConn.Execute("SELECT s.statID, s.playerID, s.statSasongID, s.klubbID, s.klubbNamn, s.statMatcher, s.statMal, s.statAssist, s.statUtvisad, s.statPlusMinus, s.statRaddning, s.statInMal, s.statNollor, n.arID, n.arAr1, n.arAr2 FROM nhl_sasonger n INNER JOIN spelare_statistik s ON n.arID = s.statSasongID ORDER BY n.arAr1 DESC, n.arAr2 DESC, statMal + statAssist DESC")
END IF
IF NOT objRS.EOF THEN
DO ...
END IF
Sen hajjar jag inte riktigt din order by: ... statMal + statAssist DESC
Kan man verkligen skriva så?! :q
Det har jag aldrig sett i alla fall! :stud
hmm, ok, jo, jag har en If objRS.EOF Then, men problemet är
Do While ar=objRS("arAr1"), när inte Request.QueryString("arID") = "" så ska alla poster hämtas tills de är slut, men när Request.QueryString("arID") är tom så ska alla poster hämtas så länge strängen ar = den senaste post arAr1 (Do While ar=objRS("arAr1"))
Vet inte redigt hur jag ska lösa det hela :OO
Du skulle kunna lösa det genom att loopa från början till slut oavsett recordset men att du i loopen kollar så att rätt id visas. :)
Do until objRs.Eof
If len(Request.QueryString("arID")) = 0 Or Request.QueryString("arID") = objRs("arID") Then
...
End If
objRs.MoveNext
Loop
Och stoppa ALDRIG in ett värde direkt från request i en SQL-sats! SQL Injection!