Avatar billede janomel Nybegynder
19. juli 2005 - 13:08 Der er 16 kommentarer og
1 løsning

Udtræk data fra flere tabeller

Dette er et ekstra spørgsmål, i forlængelse med  http://www.eksperten.dk/spm/633449:

Efter stor hjælp fra busschou, blev der fundet fremtil en god løsning og mange tak til busschou.

Jeg har prøvet at pille lidt ved kode som er blevet:
<%
'SQl udtræk fra databaseb via Case
sprog = request.querystring("language")
Select Case sprog
  Case "dk"  strSql = "Select ID,overskrift_dk,tekst_dk AS sprog from indhold" 
  Case "uk"  strSql = "Select ID,overskrift_uk,tekst_uk AS sprog from indhold" 
  Case "de"  strSql = "Select ID,overskrift_de,tekst_de AS sprog from indhold"
  Case else  strSql = "Select ID,overskrift_dk,tekst_dk AS sprog from indhold"
End Select

' Set RS skal komme efter SQL forespørgsel for at lukke tro jeg nok
Set RS = Conn.Execute(strSQL)

Do While Not rs.EOF

'Udskrivning til skærm
Response.Write "" & RS("sprog") & "<br>"
rs.MoveNext 
Loop
%>

Men hvordan får jeg tilføjet og udskrevet en overskrift? I sammen hæng med teksten?
Avatar billede testpilot_dk Nybegynder
19. juli 2005 - 13:17 #1
Hej!

Skal denne overskrift også variere fra sprog til sprog og har du også den liggende i Databasen!

Hvis det bare er en overskrift du selv vil skrive, kan du sætte en Response.Write ind i hver case!

sprog = request.querystring("language")
Select Case sprog
  Case "dk"  strSql = "Select ID,overskrift_dk,tekst_dk AS sprog from indhold" 
      Response.Write("Dansk")
  Case "uk"  strSql = "Select ID,overskrift_uk,tekst_uk AS sprog from indhold" 
      Response.Write("Engelsk")
  Case "de"  strSql = "Select ID,overskrift_de,tekst_de AS sprog from indhold"
      Response.Write("Tysk")
  Case else  strSql = "Select ID,overskrift_dk,tekst_dk AS sprog from indhold"
      Response.Write("Dansk")
End Select
Avatar billede janomel Nybegynder
19. juli 2005 - 13:53 #2
testpilot.dk: Ja overskrift er forskellige for hver sprog og ligger i databasen.
Avatar billede janomel Nybegynder
19. juli 2005 - 13:59 #3
Overskriften ligger i databasen og det aktuelle bliver brugt til "forsiden". Men jeg ønskede at bruge samme kode til andre sider f.eks. nyheder hvor der så er blevet tilføjet ekstra felter.
Avatar billede testpilot_dk Nybegynder
19. juli 2005 - 14:08 #4
Trækker du ikke din overskrift ud,

-> overskrift_dk    er det din overskrift ???

Ønsker du at bruge samme Select Case på flere sider, med samme strSql sætning ?
Avatar billede janomel Nybegynder
19. juli 2005 - 14:17 #5
Hvis jeg forstår rigtig så trækker jeg den ikke ud, Men vil gerne have den trukket ud så den kommer i forbindelse med:
Response.Write "" & RS("sprog") & "<br>"
Jeg kan godt se at det er dumt af mig at ikke have fået slettet f.eks ,overskrift_dk inden jeg oprettede spørgsmålet, men fik ikke fjernet det, da jeg copy & paste
Avatar billede testpilot_dk Nybegynder
19. juli 2005 - 14:24 #6
Okay!

Min hvis vi nu antager at
-> overskrift_dk 
--> Kan være
---> overskrift_dk
---> overskrift_eng
---> .....

i dine SQL kald,
så kan du jo bare skrive Response.Write RS("Overskrift")

Du kan evt. lave en ny SQL sætning og så kører den bagefter, hvis du ikke kan overskue at have 2 SQL sætningerne kørende parellelt.

Men jeg går ud fra at dine overskrifter ligger i samme "indhold"
Avatar billede janomel Nybegynder
19. juli 2005 - 14:37 #7
ja min tabell hedder indhold og har tabellerne
ID
overskrift_dk
overskrift_uk
overskrift_de
tekst_dk
tekst_uk
tekst_de

Men jeg forstår ikke det med at jeg bare kan skrive Response.Write RS("Overskrift") i mit sql kald? Hvor søren er det lige jeg skal gøre det.
Avatar billede testpilot_dk Nybegynder
19. juli 2005 - 14:53 #8
for at du kan trække din overskrift ud og skrive den, skal du have en variable som kan indeholde det givne navn på den i dit SQL kald

sprog = request.querystring("language")
Select Case sprog
  Case "dk"  strSql = "Select ID,overskrift_dk,tekst_dk AS sprog from indhold" 
      strOver = "overskrift_dk" 
  Case "uk"  strSql = "Select ID,overskrift_uk,tekst_uk AS sprog from indhold" 
      strOver = "overskrift_uk" 
  Case "de"  strSql = "Select ID,overskrift_de,tekst_de AS sprog from indhold"
      strOver = "overskrift_de" 
  Case else  strSql = "Select ID,overskrift_dk,tekst_dk AS sprog from indhold"
      strOver = "overskrift_dk" 
End Select

Herefter vil jeg mene at du kan benytte din strOver i dit recordset!

Response.Write RS(strOver)
Avatar billede testpilot_dk Nybegynder
19. juli 2005 - 15:13 #9
Har du fundet ud af det ??
Avatar billede janomel Nybegynder
19. juli 2005 - 15:16 #10
Back
Jeg kan ik få Response.Write RS(strOver) til at fungere, heller ik selv om det hele er i 1 el 2 sq sætninger.
Avatar billede janomel Nybegynder
19. juli 2005 - 15:19 #11
Sorry, det virker, det var min ISS der låste sig. Nu virker det smukt. Husk at svare så du kan få velfortjente point :)
Avatar billede janomel Nybegynder
19. juli 2005 - 15:20 #12
For god ordens skyld kode:
<%
'SQl udtræk fra databaseb via Case
sprog = request.querystring("language")
sprog = request.querystring("language")
Select Case sprog
  Case "dk"  strSql = "Select ID,overskrift_dk,tekst_dk AS sprog from indhold"
      strOver = "overskrift_dk"
  Case "uk"  strSql = "Select ID,overskrift_uk,tekst_uk AS sprog from indhold"
      strOver = "overskrift_uk"
  Case "de"  strSql = "Select ID,overskrift_de,tekst_de AS sprog from indhold"
      strOver = "overskrift_de"
  Case else  strSql = "Select ID,overskrift_dk,tekst_dk AS sprog from indhold"
      strOver = "overskrift_dk"
End Select


' Set RS skal komme efter SQL forespørgsel for at lukke tro jeg nok
Set RS = Conn.Execute(strSQL)

Do While Not rs.EOF

'Udskrivning til skærm. Først overskriften der efter teksten
Response.Write RS(strOver)
Response.Write "<br>" & RS("sprog") & "<br>"

rs.MoveNext 
Loop
%>
Avatar billede testpilot_dk Nybegynder
19. juli 2005 - 15:20 #13
Jamen så sender jeg et svar :)
Avatar billede janomel Nybegynder
19. juli 2005 - 15:24 #14
Jeg takker mange gange for hjælpen.
Avatar billede testpilot_dk Nybegynder
19. juli 2005 - 15:25 #15
Det var da så lidt, jeg har selv rodet med noget lignende for 14 dage siden
Avatar billede testpilot_dk Nybegynder
19. juli 2005 - 15:26 #16
men du behøver ikke have 2 stk sprog = request.querystring("Language") 

En bør være nok :)
Avatar billede janomel Nybegynder
19. juli 2005 - 15:37 #17
Du har fuldstændig ret, Takker det var også en fejl.
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