webForumDet fria alternativet

Rensa upp i databasen med smartare asp-kod..

ASP

7 svar · 567 visningar · startad av snowcat

Medlem sedan feb. 2007220 inlägg
Frågan#1

jag har en accessdatabas där jag har två kolumner, "landskap" och "karta"
Jag tänkte krympa ner min databas lite och funderade på om man kunde slå ihop de här två på något sätt. I "landskap" står endast siffror, t.ex. så står siffran 2 för Halland. I kolumnen "karta" står Halland.
"karta" har jag endast för att få fram mouseovertext till de små kartorna. Tyckte det blev lite onödigt att ha en kolumn (karta) i databasen där "skåne" står 50 gånger (jag skriver om slott och skåne har många slott)..

Kan man i asp-koden lägga in något i stil med:

<% IF RecSet("landskap") = 1 Then %>
Gästrikland
	
<% Else if RecSet("landskap") = 2 Then %>
Halland

<% End if %>
<% End if %>

Har testat med den här koden men får då "1" som mouseovertext...

eller kan man göra det på något enklare sätt?
är inte bra på asp, därför frågar jag :)

har testat med lite olika saker men jag får inte till det.
kanske man kan skriva en lång lista bara, lite enklare?

Medlem sedan juni 20019 519 inlägg
#2

du behöver inte ha två st End If. Du kan också använda Select Case.

Medlem sedan feb. 2007220 inlägg
#3

Oj - såg att en för mycket end if kom med :)

jag har många olika alternativ:
1 = Gästrikland
2 = Halland
3 = Närke
4 = Skåne
5 = Småland
6 = Södermanland
7 = Uppland
osv osv, alla landskap i sverige + de övriga nordiska länderna.
Så det blir ju en del.

Hur skulle då en sådan Select Case kunna se ut med alla dessa alternativ?

Medlem sedan juni 20019 519 inlägg
#4
Select Case RecSet("landskap")
Case 1
Response.Write "Gästrikland"
Case 2
Response.Write "Halland"
....
End Select
Medlem sedan feb. 2007220 inlägg
#5

tack för svaret :) skall försöka få till det där

Medlem sedan okt. 20041 556 inlägg
#6

Gör en funktion som du återanvänder.

Function getLandskap(byval id)
    Select Case id
        Case 1
            id= "Gästrikland"
        Case 2
            id= "Halland"
        '....
    End Select
getLandskap = id
End Function

Response.Write(getLandskap(RecSet("landskap")))
Medlem sedan dec. 19996 721 inlägg
#7

Fast det mest rimliga är förstås att du skapar en databastabell med landskapen i.

Medlem sedan juli 20003 825 inlägg
#8

Ja, verkligen!! Den skulle i så fall se ut som detta:

[landskap]
strID -- ID, räknare
strName -- text, 50

[xxxx] <--- jag fattar inte. Byt mot slott, karta, sevärdighet eller det som är relevant i just ditt fall
intID -- ID, räknare.
intLandskapID -- pekar på tabellen med landskap.
strName -- text, 50. Namnet på slottet.
strText -- PM. Massa text om slottet.

***
Are you with!?

264 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)