---
title: "loopa ut 3 i taget från mysql databas"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/181651-loopa-ut-3-i-taget-från-mysql-databas"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "noshornin"
published: "2009-12-15T14:18:19.000Z"
updated: "2009-12-16T15:46:20.000Z"
replies: 4
views: 679
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/181651-loopa-ut-3-i-taget-från-mysql-databas"
---

# loopa ut 3 i taget från mysql databas

## #1 — noshornin, 2009-12-15T14:18Z

Jag har en mysql databas med 2 fält. Ett fält som innehåller en länk till en bild och ett fält som innehåller text som ska stå under bilden.

Jag har också en table med 3 kolumner.
Jag vill loopa ut 3 bilderna från databasen till de tre kolumnerna. Sen vill jag skapa en ny rad och loopa ut texten till de 3 ovanstående bilderna.

jag har skrivit en klumpig och ful kod som dessutom inte fungerar ordentligt:

```
i = 0
while (not rs.EOF)
i = i+1
if i > 3 or  rs.EOF Then
i=0
Response.write("</tr>")
Response.write("<tr>")
Response.write("<td>"& firstString &"</td> <td>"& secondString &"</td> <td>"& thirdString &"</td> ")
Response.write("</tr>")
Response.write("<tr>")
End if

if i = 1 Then
firstString = rs.fields(1).value 
End if

if i = 2 Then
secondString = rs.fields(1).value 
End if

if i = 3 Then
thirdString = rs.fields(1).value 
End if

Response.write("<td><img src='"&rs.fields(0).value&"' height='142' idth='100'></a></td>")

rs.MoveNext
   wend
```

 

hoppas någon fattar vad jag menar och kan hjälpa mig! Sen undrar jag om man kan använda namnen på fälten i databasen - som man gör med access databaser - istället för "rs.fields(0).value"!

Permalänk: https://www.webforum.nu/p/181651

## #2 — rhdf, 2009-12-15T15:54Z

det där ser överdrivet rörigt ut

ett betydligt enklare sätt här borde vara att använda getRows
<http://www.aspdev.org/articles/asp-getrows/>

Då kan man stega runt lite i resultatet så att man tex kan skriva ut en lista på alla bilder först, och sen bara plocka ut bildtexterna för sig

tricket är att skriva en loop som håller sig mellan 0 och antalet poster samt stegar fram "3 poster i taget"

Permalänk: https://www.webforum.nu/p/2217481

## #3 — noshornin, 2009-12-15T21:46Z

tack för svaret! 
Exakt vad jag behövde!
Men hur stegar man fram "3 poster i taget" i asp? Jag har letat lite på google men har inte hittat hur man gör!

Permalänk: https://www.webforum.nu/p/2217504

## #4 — noshornin, 2009-12-15T21:59Z

jag hittade inget sätt att öka en for loop med 3 itaget så jag skrev följande istället:

```
counter = 0
while counter <= RowsInLeet

For icounter= 0 to 2
Response.write("<td><img src='"&arrLeet(1,counter+icounter)&"'></td>")
Next

Response.write("</tr><tr>")

For icounter= 0 to 2
Response.write("<td>"&arrLeet(0,counter+icounter)&"</td>")
Next

Response.write("</tr><tr>")
counter = counter+3
Wend
```

Men problemet är att om det inte finns 3, 6, 9 poster utan kanske 5 poster så får jag felmeddelandet "Subscript out of range" Någon ide på hur man kan förhindra detta?

Permalänk: https://www.webforum.nu/p/2217505

## #5 — noshornin, 2009-12-16T15:46Z

Jag lade in 2 if satser och fick det att funka!

```
<%
set myConn = createobject("ADODB.Connection") 
myConn.open "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; DATABASE=******; UID=*****; PWD=*****"
set myRS=Server.CreateObject("ADODB.recordset")

strEventSQL = "SELECT text, bildLink FROM Leet"
set RS = myConn.Execute (strEventSQL)

If Not rs.EOF Then
' Gets all the records
arrLeet = rs.GetRows()
End If

Set rs = Nothing
myConn.Close
Set myConn = Nothing

' Retrieve the total # of rows
RowsInLeet = ubound(arrLeet,2)
%>
```

```
counter = 0
while counter <= RowsInLeet

For icounter= 0 to 2
if counter+icounter <= RowsInLeet
Response.write("<td><img src='"&arrLeet(1,counter+icounter)&"'></td>")
End if
Next

Response.write("</tr><tr>")

For icounter= 0 to 2
if counter+icounter <= RowsInLeet
Response.write("<td>"&arrLeet(0,counter+icounter)&"</td>")
End if
Next

Response.write("</tr><tr>")
counter = counter+3
Wend
```

Permalänk: https://www.webforum.nu/p/2217567

---

Tråden på webben: https://www.webforum.nu/amne/asp/181651-loopa-ut-3-i-taget-från-mysql-databas
