---
title: "Loopa fram poster till rätt kategori!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/143643-loopa-fram-poster-till-rätt-kategori"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "medialabs"
published: "2006-03-08T17:59:50.000Z"
updated: "2006-03-09T13:21:44.000Z"
replies: 11
views: 517
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/143643-loopa-fram-poster-till-rätt-kategori"
---

# Loopa fram poster till rätt kategori!

## #1 — medialabs, 2006-03-08T17:59Z

**// UPPDATERADE DETTA INLÄGG: //** 

Korthet: Jag vill loopa fram ett antal poster från en tabell och lägga dessa under rätt månad. Jag önskar att alla tolv månader skrivs ut och sedan läggs posterna under rätt månad. Om ingen post finns för någon månad så ska en text skrivas ut: "Inga händelser under denna månad..".

Tror att jag har grävt min egen grav med det vi diskuterade nyss, har tänkt om och skapat följande i MySQL.

```
Tblevenemang
----------------------------------------
strEventID | strEventRubrik | strEventDatum | StrEventManad | strEventInfo | strEventLank
-----------------------------------------------------------------------------------------------------------
1	    datakurs		1/18/2006        1            infotext       http://adress.se
2	    matkurs		4/13/2006        4            infotext       http://adress2.se
```

Förklaring, strEventManad innehåller ett nummer mellan 1-12 som symboliserar Januari, februari... där 1 betyder Januari osv..

och sedan har jag skapat en tabell till som innehåller månaderna.

```
tblEventKat
----------------------------------------
strKatid | strEventmanadsNamn | 
-----------------------------------------------------------------------------------------------------------
1	    Januari		
2	    Februari
3	    Mars
4	    April
5	    Maj
6	    Juni
7	    Juli
8	    Augusti
9	    September
10	    Oktober
11	    November
12	    December
```

Jag vill på något sätt lista fram månaderna efter varandra så här och samtidigt hämta tillhörande poster från Evenemangstabellen och att dessa sorteras under rätt månad genom att jag har märkt varje post i evenemangstabellen med ett StrEventManad nummer som syftar till strKatid i den andra tabellen. :

```
<html>
...

<b>Januari</b><br>
<%här skrivs alla poster ut som har StrEventManad = 1 som syboliserar Januari%>
....
<b>April</b><br>
<%här skrivs alla poster ut som har StrEventManad = 4 som syboliserar April%>

...
</html>
```

```
Response.write "<a href=""/public/EventInfo.asp?id=" & RSEventSQL("strEventID") & """ title=""" & RSEventSQL("strEventRubrik") & """>" & RSEventSQL("strEventRubrik") & "</a><br>" & RSEventSQL("strEventDatum") & "<br><br>"
```

**// Gammalt://** 
Har ett irriterande problem, Vill genom ASP loopa fram alla poster som finns i databasen, (Mysql). Till rätt "kategori" eller rubrik, från tabellen: tblevenemang som innehåller strID, strRubrik, strDatum, StrManad, strInfo. Jag tänkte att man kunde sortera alla poster efter "strManad" som bestämmer under vilken kategori den ska hamna under, har tolv kategorier på sidan, Januari, februari, mars osv.. och strManad innehåller tex "Mars" så ska den posten läggas under posten:

**Evenemang - Februari:**
\<meddelande att det ej finns några evenemang under månaden..\>

**Evenemang - Mars:**
\<här visas postens rubrik i fom av en länk för detaljer\>

osv...
Som ni ser, har allt i huvudet, men inte kunskaperna att förverkliga detta... Hoppas att någon skall kunna hjälpa mig. Jag bjuder på en öl   :bire

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

## #2 — medialabs, 2006-03-08T19:37Z

Har kommit så här långt i mitt sökande och progammerande, fungerar tyvärr inte riktigt, nu listar den inte fram något, det finns bara en enda post i databasen, där strEventManad är April. Men inget skrivs ut under April. står bara Månaden tom..

Och min kod känns verkligen som om jag har hämtat den direkt från Idg's webbstudio från 1997. Hårtussarna börjar ryka från min skalp nu..

```
<%

	Set EventConnection = Server.CreateObject("ADODB.Connection")
	EventConnection.Open "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=; DATABASE=; USER=; PASSWORD=; OPTION=3;"

	strEventSQL = "SELECT * FROM tblevenemang"
	set RSEventSQL = EventConnection.Execute (strEventSQL)

response.write "<b>Januari</b><br><br>"
if strEventManad = "Januari" then
	do while not RSEventSQL.eof
     		Response.write "<b><a href=""/public/EventInfo.asp?id=" & RSEventSQL("strEventID") & """ title=""" & RSEventSQL("strEventRubrik") & """>" & RSEventSQL("strEventRubrik") & "</a></b><br>" & RSEventSQL("strEventDatum") & "<br><br>"
     	RSEventSQL.MoveNext
	Loop
else
	response.write "månaden tom - Januari<br><br>"
end if

response.write "<b>Februari</b><br><br>"
if strEventManad = "Februari" then
	do while not RSEventSQL.eof
     		Response.write "<b><a href=""/public/EventInfo.asp?id=" & strEventSQL("strEventID") & """ title=""" & strEventSQL("strEventRubrik") & """>" & strEventSQL("strEventRubrik") & "</a></b><br>" & strEventSQL("strEventDatum") & "<br><br>"
     	RSEventSQL.MoveNext
	Loop
else
	response.write "månaden tom - februari<br><br>"
end if

response.write "<b>Mars</b><br><br>"
if strEventManad = "Mars" then
	do while not RSEventSQL.eof
     		Response.write "<b><a href=""/public/EventInfo.asp?id=" & strEventSQL("strEventID") & """ title=""" & strEventSQL("strEventRubrik") & """>" & strEventSQL("strEventRubrik") & "</a></b><br>" & strEventSQL("strEventDatum") & "<br><br>"
     	RSEventSQL.MoveNext
	Loop
else
	response.write "månaden tom - mars<br><br>"
end if

response.write "<b>April</b><br><br>"
if strEventManad = "April" then
	do while not RSEventSQL.eof
     		Response.write "<b><a href=""/public/EventInfo.asp?id=" & strEventSQL("strEventID") & """ title=""" & strEventSQL("strEventRubrik") & """>" & strEventSQL("strEventRubrik") & "</a></b><br>" & strEventSQL("strEventDatum") & "<br><br>"
     	RSEventSQL.MoveNext
	Loop
else
	response.write "månaden tom - april<br><br>"
end if

response.write "<b>Maj</b><br><br>"
if strEventManad = "Maj" then
	do while not RSEventSQL.eof
     		Response.write "<b><a href=""/public/EventInfo.asp?id=" & strEventSQL("strEventID") & """ title=""" & strEventSQL("strEventRubrik") & """>" & strEventSQL("strEventRubrik") & "</a></b><br>" & strEventSQL("strEventDatum") & "<br><br>"
     	RSEventSQL.MoveNext
	Loop
else
	response.write "månaden tom - Maj<br><br>"
end if

	RSEventSQL.Close
	EventConnection.Close

%>
```

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

## #3 — @nders, 2006-03-08T19:38Z

Du har glömt lite citationstecken runt månadsnamnen Mars, April och Maj.

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

## #4 — medialabs, 2006-03-08T19:44Z

uppdaterade koden nu!

Nu körs koden, men får bara fram:

```
Januari

månaden tom - Januari

Februari

månaden tom - februari

Mars

månaden tom - mars

April

månaden tom - april

Maj

månaden tom - Maj
```

Om någon har en bättre lösning för att loopa fram 

```
	Response.write "<b><a href=""/public/EventInfo.asp?id=" & RSEventSQL("strEventID") & """ title=""" & RSEventSQL("strEventRubrik") & """>" & RSEventSQL("strEventRubrik") & "</a></b><br>" & RSEventSQL("strEventDatum") & "<br><br>"
```

under rätt månad baserat på strEventManad, som kan innehålla, ordet: Januari, februari, mars, april osv....

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

## #5 — @nders, 2006-03-08T19:54Z

Du sätter aldrig variabeln *strEventManad* till någonting.

I övrigt bör du helt klart loopa igenom recordsetet en gång. 

```
<%

	Set EventConnection = Server.CreateObject("ADODB.Connection")
	EventConnection.Open "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=; DATABASE=; USER=; PASSWORD=; OPTION=3;"

	strEventSQL = "SELECT * FROM tblevenemang"
	set RSEventSQL = EventConnection.Execute (strEventSQL)

	do while not strEventSQL.eof
		if RSEventSQL("strEventManad") <> strPreviousMonth then 
			response.write "<b>" & strMonth & "</b><br><br>"
			strPreviousMonth = RSEventSQL("strEventManad")
		end if
     		Response.write "<b><a href=""/public/EventInfo.asp?id=" & RSEventSQL("strEventID") & """ title=""" & RSEventSQL("strEventRubrik") & """>" & RSEventSQL("strEventRubrik") & "</a></b><br>" & RSEventSQL("strEventDatum") & "<br><br>"
     	strEventSQL.MoveNext
	Loop

	RSEventSQL.Close
	EventConnection.Close

%>
```

Visserligen får du inte fram månader utan data, men det kanske är ok?

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

## #6 — medialabs, 2006-03-08T20:23Z

Såg att jag hade missat att några strEventSQL egentligen skulle hete RSEventSQL, har markerat dessa i felstil och fungerar nu. Nu får jag fram data. Men undrar vad de markerade variablerna är för något?   :q.

```
strEventSQL = "SELECT * FROM tblevenemang"
	set RSEventSQL = EventConnection.Execute (strEventSQL)

	do while not [B]RSEventSQL[/b].eof

		if RSEventSQL("strEventManad") <> [u]strPreviousMonth[/U] then 
			response.write "<b>" & [U]strMonth[/U] & "</b><br><br>"
			[U]strPreviousMonth[/U] = RSEventSQL("strEventManad")
		end if

     		Response.write "<a href=""/public/EventInfo.asp?id=" & RSEventSQL("strEventID") & """ title=""" & RSEventSQL("strEventRubrik") & """>" & RSEventSQL("strEventRubrik") & "</a><br>" & RSEventSQL("strEventDatum") & "<br><br>"
     	[B]RSEventSQL[/b].MoveNext
	Loop

	RSEventSQL.Close
	EventConnection.Close
```

Testsida för skriptet: <http://www.securityfocus.se/public/event.asp>

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

## #7 — @nders, 2006-03-08T20:41Z

Det fetstilta är ju namnet på ditt recordset. Det kan ju vara vad som helst, men det är ju det namnet du har valt.

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

## #8 — medialabs, 2006-03-08T21:14Z

Tror att jag har grävt min egen grav med det vi diskuterade nyss, har tänkt om och skapat följande i MySQL.

Korthet: Jag vill loopa fram ett antal poster från en tabell och lägga dessa under rätt månad. Jag önskar att alla tolv månader skrivs ut och sedan läggs posterna under rätt månad. Om ingen post finns för någon månad så ska en text skrivas ut: "Inga händelser under denna månad..".

```
Tblevenemang
----------------------------------------
strEventID | strEventRubrik | strEventDatum | StrEventManad | strEventInfo | strEventLank
-----------------------------------------------------------------------------------------------------------
1	    datakurs		1/18/2006        1            infotext       http://adress.se
2	    matkurs		4/13/2006        4            infotext       http://adress2.se
```

Förklaring, strEventManad innehåller ett nummer mellan 1-12 som symboliserar Januari, februari... där 1 betyder Januari osv..

och sedan har jag skapat en tabell till som innehåller månaderna.

```
tblEventKat
----------------------------------------
strKatid | strEventmanadsNamn | 
-----------------------------------------------------------------------------------------------------------
1	    Januari		
2	    Februari
3	    Mars
4	    April
5	    Maj
6	    Juni
7	    Juli
8	    Augusti
9	    September
10	    Oktober
11	    November
12	    December
```

Jag vill på något sätt lista fram månaderna efter varandra så här och samtidigt hämta tillhörande poster från Evenemangstabellen och att dessa sorteras under rätt månad genom att jag har märkt varje post i evenemangstabellen med ett StrEventManad nummer som syftar till strKatid i den andra tabellen. :

```
<html>
...

<b>Januari</b><br>
<%här skrivs alla poster ut som har StrEventManad = 1 som syboliserar Januari%>
....
<b>April</b><br>
<%här skrivs alla poster ut som har StrEventManad = 4 som syboliserar April%>

...
</html>
```

```
Response.write "<a href=""/public/EventInfo.asp?id=" & RSEventSQL("strEventID") & """ title=""" & RSEventSQL("strEventRubrik") & """>" & RSEventSQL("strEventRubrik") & "</a><br>" & RSEventSQL("strEventDatum") & "<br><br>"
```

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

## #9 — emission, 2006-03-08T22:09Z

Sök ut data med månadstabellen som grund

```
SELECT k.strEventmanadsNamn,e.* FROM tblEventKat k
LEFT OUTER JOIN Tblevenemang e ON k.strKatID=e.StrEventManad order by strKatID
```

Då får du ut alla månader, oavsett om det finns något relaterat event eller inte. Finns det inte så kan du skriva ut det.

```
do while not RSEventSQL.eof

		if RSEventSQL("strEventmanadsNamn") <> strPreviousMonth then 
			response.write "<b>" & strMonth & "</b><br><br>"
			strPreviousMonth = RSEventSQL("strEventmanadsNamn")
		end if
               if isnull(RSEventSQL("strEventID")) then
                    Response.Write "inget denna månad"
               else
     		    Response.write "<a href=""/public/EventInfo.asp?id=" & RSEventSQL("strEventID") & """ title=""" & RSEventSQL("strEventRubrik") & """>" & RSEventSQL("strEventRubrik") & "</a><br>" & RSEventSQL("strEventDatum") & "<br><br>"
end if
     	RSEventSQL.MoveNext
	Loop
```

Namnet strKatId och StrEventManad indikerar att dessa kolumner har någon form av strängdatatyp, vilket inte är rimligt, med tanke på vad de innehåller (och för sorteringens skull). I princip är också kolumnen StrEventManad onödig, eftersom månaden finns i själva datumet.

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

## #10 — medialabs, 2006-03-09T05:31Z

> **emission skrev:**
>
> Sök ut data med månadstabellen som grund
> 
>
>
> ```
> SELECT k.strEventmanadsNamn,e.* FROM tblEventKat k
> LEFT OUTER JOIN Tblevenemang e ON k.strKatID=e.StrEventManad order by strKatID
> ```
>
> 
> 
> Då får du ut alla månader, oavsett om det finns något relaterat event eller inte. Finns det inte så kan du skriva ut det.
> 
>
>
> ```
> do while not RSEventSQL.eof
> 
> 		if RSEventSQL("strEventmanadsNamn") <> strPreviousMonth then 
> 			response.write "<b>" & strMonth & "</b><br><br>"
> 			strPreviousMonth = RSEventSQL("strEventmanadsNamn")
> 		end if
>                if isnull(RSEventSQL("strEventID")) then
>                     Response.Write "inget denna månad"
>                else
>      		    Response.write "<a href=""/public/EventInfo.asp?id=" & RSEventSQL("strEventID") & """ title=""" & RSEventSQL("strEventRubrik") & """>" & RSEventSQL("strEventRubrik") & "</a><br>" & RSEventSQL("strEventDatum") & "<br><br>"
> end if
>      	RSEventSQL.MoveNext
> 	Loop
> ```
>
> 
> 
> Namnet strKatId och StrEventManad indikerar att dessa kolumner har någon form av strängdatatyp, vilket inte är rimligt, med tanke på vad de innehåller (och för sorteringens skull). I princip är också kolumnen StrEventManad onödig, eftersom månaden finns i själva datumet.

Då presenteras det helt rätt: <http://www.securityfocus.se/public/event.asp>

Men jag förstår fortfarande inte vad de fetstilta riktigt betyder?

```
do while not RSEventSQL.eof

		if RSEventSQL("strEventmanadsNamn") <> [b]strPreviousMonth[/b] then 
			response.write "<b>" & [b]strMonth[/b] & "</b><br><br>"
			[B]strPreviousMonth[/b] = RSEventSQL("strEventmanadsNamn")
		end if
               if isnull(RSEventSQL("strEventID")) then
                    Response.Write "inget denna månad"
               else
     		    Response.write "<a href=""/public/EventInfo.asp?id=" & RSEventSQL("strEventID") & """ title=""" & RSEventSQL("strEventRubrik") & """>" & RSEventSQL("strEventRubrik") & "</a><br>" & RSEventSQL("strEventDatum") & "<br><br>"
end if
     	RSEventSQL.MoveNext
	Loop
```

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

## #11 — @nders, 2006-03-09T06:50Z

strMonth är en miss, den glömde jag att skapa i min kod. Byt den mot *RSEventSQL("strEventManadsnamn")*. strPreviousmonth är bara en variabel att jämföra med för att se om det är samma månad som föregående post eller inte.

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

## #12 — medialabs, 2006-03-09T13:21Z

Funkar prima nu! Tackar för all hjälp och ert tålamod. Borde ha vid det här laget ha lärt mig att skriva utförligt och bifoga kod/ritning så att andra förstår vad man vill uppnå.

Återigen, tack!

Ni kan nu se skriptet *"In action"* <http://www.securityfocus.se/event/index.asp>

Riktigt nöjd!

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/143643-loopa-fram-poster-till-rätt-kategori
