och ange hur många poster som ska hämtas i databasen för att reglera hur många som skrivs ut, men vad är den enklaste motsvarigheten om man vill hämta t.ex. 7 poster i databasen och bara skriva ut tre av dem (så man kan skriva ut återstående fyra poster längre ned på annat ställe).
Jag skulle kunna skippa loop såklart och skriva hela koden tre ggr i följd, men om jag vill göra det med loop, hur blir det då?
Glöm inte även att se att det faktist finns x antal poster.
Jag kör på Eclipses alt.1:
Dim i, NumberOfLoops
NumberOfLoops = 3
If rs.RecordCount < NumberOfLoops Then NumberOfLoops = rs.RecordCount
If NumberOfLoops > 0 Then
For i = 1 To NumberOfLoops
Response.Write(rs("myField"))
rs.MoveNext()
Next
End If
Själv skulle jag köra alternativ 2. Om NumberOfLoops = 3 betyder det för min hjärna att det finns FYRA poster, då första är på plats (0), eller möjligen (0,0).
Men det beror kanske lite på vad man har som referens...! :-)
Eller hur skadad man är på en skala.
TRE är alltid 3, det är ett faktum som är svårt att bortse från! Utom då möjligen i arrayer...
Jag förstod inte voigtann1s svar till 100% eller ens 90% men här är en följdfråga i alla fall. Kan man inte nollställa "i" och sen köra en till for next med i längre ned på sidan.
Vill göra så här på ett ungefär:
SQL = "SELECT blablabla ORDER BY RAND() limit 0,25"
Set rs7 = Server.CreateObject("ADODB.Recordset")
rs7.Open SQL, Connect, 1, 2
Dim i
For i = 1 To 11
Response.Write(rs7("myField"))
rs7.MoveNext
Next
i = ""
diverse annan kod här
Dim i
For i = 1 To 5
Response.Write(rs7("myField"))
rs7.MoveNext
Next
i = ""
diverse annan kod här
Dim i
For i = 1 To 4
Response.Write(rs7("myField"))
rs7.MoveNext
Next
i = ""
rs7.Close
set rs7 = nothing
Ska lägga till att på vissa sidor kommer de här tre olika for next vara med och på andra sidor kommer bara den översta vara med osv.