webForumDet fria alternativet

Loop funkar inte som den skall!

ASP

11 svar · 398 visningar · startad av ConnyFox

Medlem sedan aug. 20011 087 inlägg
Frågan#1

har ett väldigt skumt problem med en loop och en sql sats.
När jag kör order by name visas bara 1 av 4 poster och när jag tar order by date visas bara 3 av 4 poster.

givetvis borde ju alla 4 visas då värdet i belongto är samma för alla 4.

här är sql satsen m.m

mysql = "select * from wgs_scripts where belongto = '" & request.querystring("catID") & "' order by date DESC"
set RS = connect.Execute(MySQL)
if not rs.eof then
dbscripts = rs.getrows
else
scriptsEmpty = "true"
end if

och här är loopen

if not scriptsEmpty = "true" then
   with response
   
 	for i=0 to ubound(dbscripts,2)

.write "<table cellspacing='0' cellpadding='0' width='100' style='border: solid; border-width: 1px; border-color: #000000'><tr>"
.write "<td background='img/main_topbg.gif'  height='23'>"
.write "<table width='100%' cellspacing='0'><tr><td height='4'></td></tr><td class='txtwhite' >"
.write " &nbsp;<img src='img/ico_page.gif' width='11' height='13' border='0'> " & dbscripts(2,i) & ""
.write "</td><td align='right'>"
.write "<img src='img/smallbutton_download.gif' border='0'> "
.write "<img src='img/smallbutton_homepage.gif' border='0'> "
.write "<a href='" & dbscripts(3,i) & "' target='_blank'><img src='img/smallbutton_moreinfo.gif' border='0'></a>"
.write "</td></tr></table>"
.write "</td></tr>"
.write "<tr><td height='8' background='img/main_greybg.gif'>"
.write "</td></tr><tr><td bgcolor='#F2F2F2'>"
.write "<table width='400'><tr><td colspan='2' align='middle'>"
.write "</td></tr><tr><td colspan='2'>"
.write "" & dbscripts(4,i) & ""
.write "</td></tr><tr bgcolor='#ffffff'><td>"

memberrating = dbscripts(8,i) / dbscripts(7,i)
visitorrating = dbscripts(10,i) / dbscripts(9,i)

.write "Visitor Ratings : " 
WriteStars Round(visitorrating, 1)
.write " <img src='img/smallbutton_vote2.gif' width='39' height='13' border='0'>"
.write "</td><td>"
.write "Member Ratings : "
WriteStars Round(memberrating, 1)
.write " <img src='img/smallbutton_vote2.gif' width='39' height='13' border='0'>"
.write "</td></tr></table>"
.write "</td></tr></table>"
.write "<br>"

   	next
   end with
end if

tilläggas bör att jag tror mig minnas att det funkade innan jag la till writestars delarna av koden.

vad det är för funktion står här :
http://www.webforum.nu/showthread.php?s=&threadid=91039&forumid=22

Medlem sedan jan. 20032 285 inlägg
#2

Har du testat att köra utan GetRows()?

Medlem sedan aug. 20011 087 inlägg
#3

umm nej.. :D men vadå det borde väll funka ändå? =D

Medlem sedan jan. 20032 285 inlägg
#4

Jo, men eftersom det inte funkar måste man ju försöka hitta en orsak.

Medlem sedan aug. 20011 087 inlägg
#5

mjoo får väll köra "vanligt" om ingen här lyckas lista ut vad det kan bero på!

Medlem sedan aug. 20011 087 inlägg
#6

Är det vanligt att getrows buggar såhär eller är det jag som gjort något fel?

Går det att lösa eller måste jag köra utan getrows?

Medlem sedan aug. 20011 087 inlägg
#7

Ok jag har felsökt ok lokaliserat felet!

Det är när fuktionen writestars körs i loopen som den buggar.

någon som vet hur man fixar detta eller hur jag kan ersätta funktionen.

Funktionen går att hitta här
http://www.webforum.nu/showthread.php?s=&threadid=91039&forumid=22
och är en funktion för att visa ett genomsnittsbetyg (t.ex 4.5) som strärnor (i detta fall 4 hela och en halv)

Medlem sedan jan. 20032 285 inlägg
#8

Tror att jag har hittat felet:

if not scriptsEmpty = "true" then
   with response
   
 	for [b]intCount[/b]=0 to ubound(dbscripts,2)

.write "<table cellspacing='0' cellpadding='0' width='100' style='border: solid; border-width: 1px; border-color: #000000'><tr>"
.write "<td background='img/main_topbg.gif'  height='23'>"
.write "<table width='100%' cellspacing='0'><tr><td height='4'></td></tr><td class='txtwhite' >"
.write "  <img src='img/ico_page.gif' width='11' height='13' border='0'> " & dbscripts(2,intCount) & ""
.write "</td><td align='right'>"
.write "<img src='img/smallbutton_download.gif' border='0'> "
.write "<img src='img/smallbutton_homepage.gif' border='0'> "
.write "<a href='" & dbscripts(3,intCount) & "' target='_blank'><img src='img/smallbutton_moreinfo.gif' border='0'></a>"
.write "</td></tr></table>"
.write "</td></tr>"
.write "<tr><td height='8' background='img/main_greybg.gif'>"
.write "</td></tr><tr><td bgcolor='#F2F2F2'>"
.write "<table width='400'><tr><td colspan='2' align='middle'>"
.write "</td></tr><tr><td colspan='2'>"
.write "" & dbscripts(4,intCount) & ""
.write "</td></tr><tr bgcolor='#ffffff'><td>"

memberrating = dbscripts(8,intCount) / dbscripts(7,intCount)
visitorrating = dbscripts(10,intCount) / dbscripts(9,intCount)

.write "Visitor Ratings : " 
WriteStars Round(visitorrating, 1)
.write " <img src='img/smallbutton_vote2.gif' width='39' height='13' border='0'>"
.write "</td><td>"
.write "Member Ratings : "
WriteStars Round(memberrating, 1)
.write " <img src='img/smallbutton_vote2.gif' width='39' height='13' border='0'>"
.write "</td></tr></table>"
.write "</td></tr></table>"
.write "<br>"

   	next
   end with
end if

Eftersom jag använder For-loopar med i som variabel i funktionen kan du inte använda samma i din loop. :)

Medlem sedan aug. 20011 087 inlägg
#9

Hmm njaa nu skriver den ut och så fin fint men samma post skrivs ut gång på gång :D

Medlem sedan aug. 20011 087 inlägg
#10

Dvs endast en post skrivs ut fast en gång för varje post som finns

Medlem sedan juni 200032 967 inlägg
#11

Eftersom du byter loop-kontrollvariabel från i till intCount, får du också byta på alla ställen i koden där du tidigare använde i. Förutom i funktionen WriteStars(). Problemet uppkom eftersom funktionen använde samma kontrollvariabel (i), och skrev om värdet på den. Uppskattas inte av kallande kod. ;)

Fast det kanske är färre ställen att ändra på om du byter kontrollvariabel i WriteStars() istället?

Medlem sedan aug. 20011 087 inlägg
#12

Ah det tänkte jag faktiskt aldrig änns på! nu funkar både loopen och funktionen tackar tackar, då har man lärt sig något idag med då :D

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)