Avatar billede lund_dk Praktikant
30. september 2006 - 20:31 Der er 2 kommentarer og
1 løsning

Flere sprog - hente fra database

hej..

Mit site har 3 sprog versioner, dansk, norsk og svensk

Jeg har en database med en tabel "sprog" som har id,dk,se,no som kolonner.

Jeg ville gerne på mit site finde en tekst via følgende metode

<%=sprog(3)%> eller <%=sprog_3%>

Hvor "3" svarer til ID nummer i min tabel.

Hvordan trækker jeg det bedst ud af min tabel?

Det er nemt nok at lave en function med "where ID = " bla bla, men gør jo så også at jeg for hvert eneste ord jeg vil hente, skal ind og åbne databasen.. en metode hvor jeg åbnede databasen én gang, ville være mest holdbar.

Har en session("sprog") som angiver hvad sprog brugeren er på..


---

eller andre idéer til hvordan jeg løser dette?
Avatar billede w13 Novice
01. oktober 2006 - 11:45 #1
Forudsat at du bruger Microsoft Access som database, ville du kunne løse det sådan her, hvis jeg da har forstået, hvad problemet er:
-------------------------------------------------
<%Set rs = Server.CreateObject("ADODB.RecordSet")
Set Conn = Server.CreateObject("ADODB.Connection")
strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/db/database.mdb")
Conn.Open strDSN

Sub Sprog(sprogid)
    strSQL = "SELECT * FROM [sprog] WHERE [id] = " & sprogid
    Set rs = Conn.Execute(strSQL)
    If Not (rs.BOF Or rs.EOF) Then
        If Session("sprog") = "dk" Then
            Response.Write rs("dk")
        ElseIf Session("sprog") = "se" Then
            Response.Write rs("se")
        ElseIf Session("sprog") = "no" Then
            Response.Write rs("no")
        End If
    End If
    rs.Close
End Sub%><html>
<head>
<title>Sprog</title>
</head>
<body>

Tekst: <%Sprog(3)%><br><br>
Tekst: <%Sprog(1)%><br><br>
Tekst: <%Sprog(2)%><br><br>

</body>
</html><%Conn.Close
set rs = Nothing
set Close = nothing
set Conn = nothing%>
-------------------------------------------------
Her åbnes og lukkes databasen kun én gang, men der oprettes dog forbindelse til tabellen sprog flere gange. Hvis du helt vil undgå dette, skal du nok benytte et array til at lægge alle posterne ind i. Men det har jeg ikke så godt styr på - i så fald må du nok spørge en anden.

Håber du kunne bruge koden, ellers må du lige forklare, hvad jeg har misforstået. =)
Avatar billede lund_dk Praktikant
03. oktober 2006 - 09:19 #2
Perfekt.. lige hvad jeg havde brug for..
Smid et svar..
Avatar billede w13 Novice
04. oktober 2006 - 21:24 #3
Et svar =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester