HEJ!
Men, då har du inte gjort, eller visar inte, koden som vi skrev, men samtidigt får du inga felmeddelanden.
Varför visar du den kodsnutten?
Frågan går genom, du får ett antal poster.
För mig verkar det som att RecordCount blir -1 ändå?
60 svar · 1 208 visningar · startad av wunderbaren · sida 2 av 4
Hejsan! Nedan visar en kod som postar poster ur databasen, men hur gör man så att den sista posten ska visa annorlunda bild? Det är mest ett filnamn jag vill ändra, från "files/iconlines.gif" till files/iconlines2.gif. \<% Set RecSet=Conn.Execute("Select \ From galleri Where sort='" & Request.Querystring("kat") & "' Order By namn") If RecSet.EOF Then%\> Inga kategorier inlagda i
Läs frågan i sin helhet →HEJ!
Men, då har du inte gjort, eller visar inte, koden som vi skrev, men samtidigt får du inga felmeddelanden.
Varför visar du den kodsnutten?
Frågan går genom, du får ett antal poster.
För mig verkar det som att RecordCount blir -1 ändå?
Jag förstår inte riktigt vad du menar, detta är koden i sin helhet. Den visar alltså den bilden som ska visas sist, visas för alla poster. Vad ska man ändra i koden för att det ska fungera?
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=wonderland2;USER=wonderland;PASSWORD=lookinggood23;OPTION=3;"
sql = "Select * From galleri Where sort='" & Request.Querystring("kat") & "' Order By namn"
intCounter = 0
Set RecSet = Server.Createobject("ADODB.Recordset")
RecSet.Open sql, Conn, 1, 2
if(RecSet.EOF) then
Response.Write "Inga kategorier inlagda i kategorin " & Request.QueryString("kat")
else
While Not RecSet.EOF
set objRS = Conn.Execute("SELECT * FROM galleri WHERE namn = '" & RecSet("namn") & "'")
set objPicture = Conn.Execute("SELECT * FROM bilder WHERE namn = '" & Request.Querystring("kat") & "' ORDER BY namn DESC LIMIT 1")
intCounter = intCounter + 1
if(intCounter < RecSet.RecordCount) then
strPath = "files/icon_lines.gif"
else
strPath = "files/icon_lines2.gif"
end if
Response.Write "<img border=""0"" src=""files/icon_lines_empty.gif"" width=""17"" height=""20"" align=""absmiddle"">"
Response.Write "<img border=""0"" src=""" & strPath & """ width=""17"" height=""20"" align=""absmiddle"">"
Response.Write "<img border=""0"" src=""files/icon_folder.gif"" width=""16"" height=""15"" align=""absmiddle""> "
Response.Write "<a href=""./?page=galleri&kat=" & Request.QueryString("kat") & "&id=" & RecSet("namn") & """>" & RecSet("namn") & "</a><br>"
RecSet.MoveNext
Wend
end if
HEJ!
wunderbaren skrev:
Vad ska man ändra i koden för att det ska fungera?
Det återstår att se.
Nu går frågan igenom, som tidigare.
Men, eftersom du har lagt till rätt databasöppning och lagt objektskapningen av RecSet ska RecordCount fungera.
Då återstår fortsatt felsökning!
Skriv ut de variabler som påverkar att det blir fel, nämligen intCounter och RecSet.RecordCount.
Har du tex tre poster i RS:et, blir RecordCount tre.
Då blir if-satsen sann, NÄ!, det blir den ju inte! på tredje varvet!
Följande borde du få på tredje varvet:
IntCounter = 3
RecSet.RecordCount = 3 (som alla varv)
if-satsen:
intCounter < RecSet.RecordCount
3<3
vilket inte är sant, dvs det blir icon_lines2.gif ändå.
Om du sätter IntCounter=1, eller lägger <= i if-satsen, eller sätter endast =, och byter plats på bilderna, bör det fungera!
IntCounter=1
Samma fel, sista bilden visades på alla poster
<= i if-satsen
Samma fel, sista bilden visades på alla poster
sätter endast =, och byter plats på bilderna
Då visades den vanliga bilden hela tiden
HEJ!
J.N. skrev:
Då återstår fortsatt felsökning!
Skriv ut de variabler som påverkar att det blir fel, nämligen intCounter och RecSet.RecordCount.
Om du skrivit ut variablerna och de är rätt, vet jag inte vad felet är.
Det är koden däruppe:
http://www.webforum.nu/showthread.php?s=&postid=1010439#post1010439
Säker på att det ska funka? För det funkar verkligen inte =/
Har provat följande koder:
if(intCounter = RecSet.RecordCount) then
strPath = "files/icon_lines.gif"
else
strPath = "files/icon_lines2.gif"
end if
if(intCounter=1 < RecSet.RecordCount) then
strPath = "files/icon_lines.gif"
else
strPath = "files/icon_lines2.gif"
end if
if(intCounter <= RecSet.RecordCount) then
strPath = "files/icon_lines.gif"
else
strPath = "files/icon_lines2.gif"
end if
if(intCounter = RecSet.RecordCount) then
strPath = "files/icon_lines2.gif"
else
strPath = "files/icon_lines.gif"
end if
HEJ!
Nr 2 är direkt fel, där har du både = och < i samma uttryck, men det har ingen betydelse, för nr 1, 3 eller 4 borde fungerat!
Jag tror du missat en grundläggande sak i felsökningen, utskriften av vad du håller på med.
Lägg
response.write intCounter & "-" & RecSet.RecordCount
ovanför ifsatsen, då ser du vilka siffror du får i loopen.
När du gjort det, ser du vad servern tycker att du håller på med.
Skulle det stå (med 3 bilder, )
1-3
2-3
3-3
och du kör med alternativ 4 ska det fungera.
Men, tydligen har du något värde fel, eftersom det inte fungerar.
HEJ!
Precis det vi inte ville, ha, eller jo, nu vet vi vad felet är.
Eftersom du använder RecSet-objektet rätt, gissar jag att det har något med MySQL att göra.
Om det kan jag inget, och har därför ingen lösning. :(
http://www.devguru.com/Technologies/ado/quickref/recordset_recordcount.html
Ingen lösning alls? :(
HEJ!
Tyvärr, jag har ingen, eftersom det troligen handlar om MySQL-relaterade problem.
Mina kunskaper täcker tyvärr inte det området.
Och om man provar med en statisk cursor?
På sidan J.N. länkar till står att det kan vara knas om man använder en dynamisk cursor. Därför hade jag provat med en statisk istället.
Om jag läser länken rätt borde den tredje parametern vara cursortyp. Och om jag läser ännu mer rätt torde nuffran 3 motsvara en statisk cursor.
mvh
Har provat en 3:a, och två treor. Samma "fel".
Då kan det vara en begränsning iom att du använder MySQL. Den "lättaste" lösningen kanske skulle vara om du använder GetRows(). (en liten sökning här på wF ger massor av exempel på detta).
mvh
Såg precis massor med exempel på detta, men förstår inte riktigt hur jag ska använda det. Ombyggnad av min nuvarande kod uppskattas, så man lättare ser! :)
sql = "Select * From galleri Where sort='" & Request.Querystring("kat") & "' Order By namn"
intCounter = 0
Set RecSet = Server.Createobject("ADODB.Recordset")
RecSet.Open sql, Conn, 3,3
if(RecSet.EOF) then
Response.Write "Inga kategorier inlagda i kategorin " & Request.QueryString("kat")
else
While Not RecSet.EOF
set objRS = Conn.Execute("SELECT * FROM galleri WHERE namn = '" & RecSet("namn") & "'")
set objPicture = Conn.Execute("SELECT * FROM bilder WHERE namn = '" & Request.Querystring("kat") & "' ORDER BY namn DESC LIMIT 1")
intCounter = intCounter + 1
response.write intCounter & "-" & RecSet.RecordCount
if(intCounter < RecSet.RecordCount) then
strPath = "files/icon_lines.gif"
else
strPath = "files/icon_lines2.gif"
end if
Response.Write "<img border=""0"" src=""files/icon_lines_empty.gif"" width=""17"" height=""20"" align=""absmiddle"">"
Response.Write "<img border=""0"" src=""" & strPath & """ width=""17"" height=""20"" align=""absmiddle"">"
Response.Write "<img border=""0"" src=""files/icon_folder.gif"" width=""16"" height=""15"" align=""absmiddle""> "
Response.Write "<a href=""./?page=galleri&kat=" & Request.QueryString("kat") & "&id=" & RecSet("namn") & """>" & RecSet("namn") & "</a><br>"
RecSet.MoveNext
Wend
end if
Man kan göra så här:
sql = "Select * From galleri Where sort='" & Request.Querystring("kat") & "' Order By namn"
intCounter = 0
Set RecSet = Server.Createobject("ADODB.Recordset")
RecSet.Open sql, Conn, 3,3
if(RecSet.EOF) then
Response.Write "Inga kategorier inlagda i kategorin " & Request.QueryString("kat")
else
[b]lRecordCount = Ubound(RecSet.GetRows(), 2) + 1[/b]
While Not RecSet.EOF
set objRS = Conn.Execute("SELECT * FROM galleri WHERE namn = '" & RecSet("namn") & "'")
set objPicture = Conn.Execute("SELECT * FROM bilder WHERE namn = '" & Request.Querystring("kat") & "' ORDER BY namn DESC LIMIT 1")
intCounter = intCounter + 1
response.write intCounter & "-" & RecSet.RecordCount
if(intCounter < [b]lRecordCount[/b]) then
strPath = "files/icon_lines.gif"
else
strPath = "files/icon_lines2.gif"
end if
Response.Write "<img border=""0"" src=""files/icon_lines_empty.gif"" width=""17"" height=""20"" align=""absmiddle"">"
Response.Write "<img border=""0"" src=""" & strPath & """ width=""17"" height=""20"" align=""absmiddle"">"
Response.Write "<img border=""0"" src=""files/icon_folder.gif"" width=""16"" height=""15"" align=""absmiddle""> "
Response.Write "<a href=""./?page=galleri&kat=" & Request.QueryString("kat") & "&id=" & RecSet("namn") & """>" & RecSet("namn") & "</a><br>"
RecSet.MoveNext
Wend
end if
Mvh