Indentera, indentera, indentera, indentera, indentera, indentera, indentera, indentera, indentera, indentera, indentera, indentera, indentera, indentera så är det så mycket lättare att fånga upp fel, följa slingor och if-satser.
If-sats
Kodrad
Kodrad
For-sats
Kodrad
Kodrad
If-sats
Kodrad
Kodrad
Else-sats
Kodrad
Kodrad
End if
Next
Else-sats
Select case-sats
Case "foo"
Kodrad
Kodrad
Case "bar"
Kodrad
Kodrad
End select
End if
Meningen är alltså att se vilken kod som tillhör vilket kodblock, och att göra koden lättöverskådlig och lätt att följa. Ibland lägger jag också in en tomrad här och där för att göra blocken ännu tydligare.
När man har en indenterad kod är det mycket lättare att fånga upp fel som beror på att man satt kod på fel ställe.
Problemet denna gång är nog att du har en next som ligger allra sist. Skall det fungera, så måste ju for ligga överst, och det gör den inte. Next borde alltså ligga före den "else" vi pratar om.
Ja, under förutsättning att intFirstPost och intLastPost gör så att i blir ett värde du kan använda när du hämtar värden från din array, och att du tittar på rätt rad.
Ett fel kan ju vara att du i din SQL-fråga hämtar nio fält (0-8), och i koden försöker du sedan skriva ut fält 9 och 10 från din array.
Kan ju bero på att du inte har någon order by i din selectfråga, så posterna kommer huller om buller. Borde du inte sortera på strRel för att få dem i "kategoriordning"? Du saknar också kod som sätter strRel till strLast i din if-sats som skriver ut rubriken.
<%
strLast = ""
intVar = 0
' -- // Kollar så att det finns inlägg
If IsArray(arrVa) Then
' -- // Visa antal inlägg per sida
intPostsPerPage = 100
' -- // Navigeringshantering
If IsNumeric(Trim(Request.Querystring("pg"))) Then
intPage = CInt(Trim(Request.Querystring("pg")))
Else
intPage = 1
End If
intFirstPost = (intPage - 1) * intPostsPerPage
intTotalPosts = UBound(arrVa, 2)
intPages = ((intTotalPosts)\intPostsPerPage)+1
If intFirstPost + (intPostsPerPage - 1) >= UBound(arrVa,2) Then
intLastPost = UBound(arrVa, 2)
Else
intLastPost = intFirstPost + (intPostsPerPage - 1)
End If
' -- // Klart med det =)
' -- // Skriv ut inläggen på den valda sidan
For i = intFirstPost To intLastPost
If i Mod 2 = 0 then
color = "325F77"
Else
color = "2D586F"
End If
' -- // Hämtar alla värden från arrayn (databasen...)
strAnv = arrVa(0, i)
intAnvID = arrVa(1, i)
VstrAnvn = arrVa(2, i)
V_ID = arrVa(3, i)
intVanID = arrVa(4, i)
VstrVan = arrVa(5, i)
VintVanID = arrVa(6, i)
strRel = arrVa(7, i)
intIrl = arrVa(8, i)
intStatus = arrVa(9, i)
strSenast = arrVa(10, i)
if not strLast = strRel Then %>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr>
<td>
<tr bgcolor="#D81F2A">
<td>
<font class="brödtext"><b><% Response.write strRel %> </b></font>
</td>
<td width="5%"> </td>
<td width="20%"> </td>
<td width="30%"> </td>
<td width="10%"> </td>
</tr>
<%
End IF %>
<table border="0" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td width="100%">
<a href="minsida_ny.asp?ID=<%=intVanID%>"><%=VstrVan%></a>
</td>
</tr>
</table>
<%
strLast = strRel
Next
' -- // Och så var alla inlägg utskrivna
' -- // Det fanns inga inlägg, vi får ställa in lite annat
else
intPages = 0
intTotalPosts = -1 %>
Här finns inga vänner
<% Connect.Close
Set Connect = nothing
End If%>
Där har vi de :D:D:D
263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e