---
title: "Ett litet problem med tabeller o loopar..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/55225-ett-litet-problem-med-tabeller-o-loopar"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "LearningASP"
published: "2002-10-06T10:42:05.000Z"
updated: "2002-10-06T10:57:14.000Z"
replies: 2
views: 267
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/55225-ett-litet-problem-med-tabeller-o-loopar"
---

# Ett litet problem med tabeller o loopar...

## #1 — LearningASP, 2002-10-06T10:42Z

Hej! det är så att jag har en sida där jag ska visa bilder och då har jag ett pagingscript till detta och jag vill att det ska visas 6 bilder i varje kolumn och sen ny rad, det fyllas på rader beronde på hur många bilder det ligger i den mappen... ja ni förstår

jag har fixat lite med denna koden men får inte den att fungera... bilderna byter inte rad utan visas bara på en lång rad

```
<%
		'## -- hämta alla poster --
		Function getImages
			Dim objFSO, objFolder, File, objRSimg
			Dim strExtension

			Const adChar = 129

			'## -- skapar recordsetet --
			Set objRSimg = Server.CreateObject("ADODB.Recordset")
				'## -- skapar en kolumn i recordsetet --
				objRSimg.Fields.Append "ImageName", adChar, 255
				
				'## -- öppnar recordsetet. Notera att nu behövs ingen
				'##    sql-fråga eller connection object eftersom
				'##    vi skapar det dynamiskt och sedan fyller det --
				objRSimg.Open
			
				'## -- skapar ett filesystemobject för att kunna få mapp information --
				Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
					
					'## -- fysiska sökvägen till mappen från root --" & strFolder & "
					strFolderPath = Server.MapPath("\pump\foto\mode\v8\thumbnails\")
					
					'## -- hämta folder info --
					Set objFolder = objFSO.GetFolder(strFolderPath)
										
						'## -- här börjar vi att loopa igenom alla filer som finns
						'##    i mappen --
						For Each File IN objFolder.Files
							'## -- vilken filändelse har filen --
							strExtension = objFSO.GetExtensionName(File)
							
							'## -- se till att ändast giltiga bild-filer
							'##    läggs till i recordsetet. gif eller jpeg --
							Select Case UCase(strExtension)
								Case "GIF", "JPG"
								
									'## -- ställ recordsetet i update läge --
									objRSimg.AddNew
									
										'## -- vilken information ska läggas till
										'##    i kolumnen --
										objRSimg("ImageName") = File.Name
										
									'## -- uppdatera recordsetet med en ny post --
									objRSimg.Update
							End Select
						Next
					Set objFolder = Nothing
				Set objFSO = Nothing
			
				If Not objRSimg.EOF Then
					objRSimg.MoveFirst
					getImages = objRSimg.GetRows()
				End If
			
				objRSimg.Close
			Set objRSimg = Nothing
		End Function

		'## -- vilken post ska pagingen börja på --
		Function getStartID(ByVal PageSize, ByVal ViewPage) ' As Integer
			Dim m_intStart
			m_intStart = ((PageSize * ViewPage) - PageSize)
			getStartID = m_intStart
		End Function

		'## -- räkna ut hur många sidor som ska visas --
		Function countPages(ByVal HowManyRecords, ByVal PageSize)
			Dim m_intTotalPages, m_intRest

			m_intTotalPages = HowManyRecords / PageSize

			If m_intTotalPages < 1 Then
				m_intTotalPages = 1
			Else
				m_intRest = m_intTotalPages - CLng(m_intTotalPages)
				If m_intRest > 0 AND m_intRest < 0.5 Then
					m_intTotalPages = CLng(m_intTotalPages) + 1
				Else
					m_intTotalPages = CLng(m_intTotalPages)
				End If
			End If

			'## -- return how many pages --
			countPages = m_intTotalPages
		End Function
		'##***********************************************************************************
		
		
		Dim arrRecords
		Dim intPageSize
		Dim intPage
		Dim intStartID
		Dim I			
		Dim intTotalPages
		Dim intTotalRecords
		
		'Egna Vriabler	
								

		'## -- vilken sida ska visas --
		intPage = Request.QueryString("page")
		If intPage = "" Then intPage = 1

		'## -- hur många poster ska visas per sida --
		intPageSize = 4

		'## -- hämta alla records, hämtas med metoden getrows och returneras
		'##    som en array. --
		
		'## -- här hämtar vi alla bilder till en 2 dimensionell array --
		arrRecords = getImages

		'## -- vilken post är den första --
		intStartID = getStartID(intPageSize, intPage)

		'## -- printa ut sidan som ska visas
		'##    alla poster finns i arrayen arrRecords som
		'##    kommer från funktionen getRecords --
		If IsArray(arrRecords) Then
			'Response.Write "E ju en array<BR>"
		'## -- hur många records finns det totalt --
		intTotalRecords = UBound(arrRecords,2) + 1
	
		'## -- hur många sidor finns det i recordsetet --
		intTotalPages = countPages(intTotalRecords, intPageSize)

		'## -- startar tabellen utanför loopen --
		Response.Write("<div align=""center"">")
		Response.Write ("<table border=""0"" cellpadding=""2"" cellspacing=""4"">")
		Response.Write "<tr>"
		Call PrevPage(intPage)
				
		'## -- Loopen av bilderna börjar
		intCounter = intCounter + 1 
		For I = intStartID To ((intStartID + intPageSize) -1)
		
		iNr = I + 1
				
		strImageName = arrRecords(0,I)
			
		'## -- skriv ut en bild --									
		
		Response.Write ("<TD align=""center""><A href=""bildpres.asp?mapp="& strFolder &"&rosta="& strVote &"&bild="& strImageName &""" target=""TopFrame""><IMG src=""" & strFolder & "/thumbnails/" & strImageName & " "" border=""0"" alt=""""></A><br>" & iNr & "</TD>")
		
		If intCounter mod 2 = 0 Then Response.Write "</tr><tr>"
		
		If I = UBound(arrRecords, 2) Then Exit For
		
		

		Next
		
		'## -- stänger tabellen efter loopen --
		If intCounter mod 2 <> 0 Then
			Do Until intCounter mod 2 = 0
				Response.Write "<td> </td><td></td>"
				intCounter = intCounter + 1
			Loop
		End If
			Response.Write "</tr></table><br>"
		
		Call NextPage(intTotalPages,intPage)
		'Response.Write("</tr></table>")
		'Response.Write("</div>")
								
		'## -- skriv ut sidnavigerings menyn --
		

		

		'## -- skriver ut sidnavigeringen --
		'## -- skriv ut föregående sida --
		Sub PrevPage(ByVal WichPage)
			Dim strScriptName
			strScriptName = Request.ServerVariables("SCRIPT_NAME")
			
		'## -- skriver ut sidnavigeringen --
		'## -- skriv ut en länk till föregående sida --
			If CInt(WichPage) > 1 Then
				Response.Write("<td align=""left"">" & _
				"<a href='" & strScriptName & "?" & "mapp=" & Server.URLEncode((strFolder)) & "&rosta="& strVote &"&page=" & WichPage - 1 & "'>" & _
				"<img border=""0"" src=""../bilder/knappar/left.gif"" alt=""Gå " & intPageSize & " bilder bakåt...""></a></td>")
			Else
				Response.Write("<td align=""left""></td>")
			End If
		End Sub
		
		'## -- skriv ut nästa sida --
		Sub NextPage(ByVal HowManyPages, ByVal WichPage)
			Dim strScriptName
			strScriptName = Request.ServerVariables("SCRIPT_NAME")
	
			'## -- skriv ut en länk till nästa sida --
			If CInt(WichPage) < CInt(HowManyPages) Then
				Response.Write("<td align=""right"">" & _
				"<a href='" & strScriptName & "?" & "mapp=" & Server.URLEncode((strFolder)) & "&rosta="& strVote &"&page=" & WichPage + 1 & "'>" & _
				"<img border=""0"" src=""../bilder/knappar/right.gif"" alt=""Gå " & intPageSize & " bilder framåt..""></a></td>")
			Else
				Response.Write("<td align=""right""></td>")
			End If
		End Sub
			Else
				'## -- inga poster fanns i db --
				intPage = 0
				intTotalRecords = 0
				intTotalPages = 0
	
				'## -- skriv ut att inga poster hittades --
				Response.Write("<P>Inga bilder hittades</P>")
			End If
			%>
```

 

Tack på förhand

Jonas

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

## #2 — CatZ, 2002-10-06T10:54Z

Men herregud människor!!! Skicka inte så förbannat mycket kod jag kan ju inte koncentrera mig så länge det tar att läsa igenom allt :(

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

## #3 — PatrikB, 2002-10-06T10:57Z

Du får nog flytta på denna rad så att den ligger i For Loopen:

```
intCounter = intCounter + 1
```

Sedan för att få 6 bilder i rad måste du även ändra denna rad:

```
If intCounter mod 2 = 0 Then
```

till

```
If intCounter mod 6 = 0 Then
```

Finns en rad till efter loopen som oxå måste ändras för att tabellen ska bli korrekt formaterad:

```
'## -- stänger tabellen efter loopen --
If intCounter mod 2 <> 0 Then
```

ändra till:

```
'## -- stänger tabellen efter loopen --
If intCounter mod 6 <> 0 Then
```

testa dessa ändringar. Funkar de inte är det bara att komma tillbaka

cya,
PatrikB

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/55225-ett-litet-problem-med-tabeller-o-loopar
