Avatar billede sapworld Nybegynder
22. juli 2005 - 00:12 Der er 17 kommentarer og
1 løsning

Session fra tabel i Access

Hej
Jeg forsøg med Session at hente en persons navn, for at i næste session at gemme det i en tabel. Desværre får jeg en fejl på denne kode:
<%
strSQL = "select * from user WHERE session("username") = 'username'"
set user = Conn.Execute(strSQL)
Response.Write user ("navn")
%>

Hvad har jeg gjort galt?
Avatar billede busschou Praktikant
22. juli 2005 - 00:17 #1
hvis session("username") er lig "Hans" så står der jo
strSQL = "select * from user WHERE Hans = 'username'"
mon ikke du mener det omvendt?
strSQL = "select * from user WHERE username = 'session("username")'"
Avatar billede busschou Praktikant
22. juli 2005 - 00:18 #2
men så igen skriver du user("navn")
Så jeg er lidt i tvivl om hvad du egentlig mener og hvad du ønsker
Gemme noget i næste session? man har kun een session at arbejde i
Avatar billede softspot Forsker
22. juli 2005 - 00:21 #3
For mig ser det da ud til at der er en syntaksfejl i sætnignen

strSQL = "select * from user WHERE session("username") = 'username'"

Jeg ville umiddelbart forvente at den skulle se således ud:

strSQL = "select * from user WHERE username = '" & session("username") & "'"

Eller er der noget jeg har misforstået...?
Avatar billede busschou Praktikant
22. juli 2005 - 00:22 #4
ups ja den glemte jeg da, at det skal uden om strengen ;o)
Avatar billede ksoren Nybegynder
22. juli 2005 - 00:33 #5
Og så er det vel i princippet lige meget, når det er en sammenligning, om man siger a=b eller b=a
Avatar billede busschou Praktikant
22. juli 2005 - 00:34 #6
ksoren >> er det nu også det i sql? jeg har aldrig prøvet men jeg ville mene at den forventer feltnavnet før sammenlignings værdien
Avatar billede ksoren Nybegynder
22. juli 2005 - 01:10 #7
Umiddelbart synes jeg det virker fint
Avatar billede sapworld Nybegynder
22. juli 2005 - 07:19 #8
Jeg troede ikke lige at nogen var vågne så sent ;)

Når folk logger på gemmer jeg deres username i en session, hvilket er deres Email. Når de opretter en post i access vha. en form, så ville jeg gerne have deres navn vist på side a inden værdi'erne gemmes på side b. Deres navn står i samme tabel som deres username.

Ingen af disse kan jeg får til at virke:
strSQL = "select * from user WHERE session("username") = '"username"'"
strSQL = "select * from user WHERE session("username") = '" & username & "' "
strSQL = "select * from user WHERE username = '" & session("username") & "'"
Avatar billede busschou Praktikant
22. juli 2005 - 08:22 #9
Hvis du gemmer deres email i session("username") og hvis der i din tabel "user" er et felt kaldet "username" som er lig denne, så burde den nederste virke
strSQL = "select * from user WHERE username = '" & session("username") & "'"
Hvilken fejlmeddelelse giver den dig ?
Er det fordi feltet måske hedder "UserName" ? altså at der er store bogstaver i ?
Avatar billede sapworld Nybegynder
22. juli 2005 - 08:56 #10
æv æv - Det virker skam. Jeg havde bruge "name" i stedet for "navn" i databasen. Hvordan "gemmer" jeg "navn" så jeg kan gemme det på næste side. Jeg bruger denne:

strSQL = "Insert into sporg (titel, navn) values('" & request.Form("titel") & "', '" & request.Form("navn") & "' )"
set sporg = Conn.execute(strSQL)

Nu ligger det jo ikke i et form felt
Avatar billede busschou Praktikant
22. juli 2005 - 08:59 #11
Jamen når du henter navnet så lægger du da bare det i en session
Hedder den "navn" nu ? for det har du skrevet igen i den ovenover
Men ellers når du henter den ud så gem den i en session
--
set rs = conn.execute(strSQL = "select * from user WHERE username = '" & session("username") & "'")
session("navn") = rs("navn")
--
Så kan du på din næste side bruge denne session akkurat som med det andet
--
strSQL = "Insert into sporg (titel, navn) values('" & request.Form("titel") & "', '" & session("navn") & "' )"
Avatar billede sapworld Nybegynder
22. juli 2005 - 09:14 #12
Med denne:
set rs = conn.execute(strSQL = "select * from user WHERE username = '" & session("username") & "'")
session("navn") = rs("navn")
Response.Write user ("navn")
%>
Får jeg denne fejl:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.
Avatar billede busschou Praktikant
22. juli 2005 - 09:16 #13
øhh jamen du sagde lige at du havde fået det første til at virke
Ikke sandt?
Hvordan så det ud når det virkede?
Avatar billede busschou Praktikant
22. juli 2005 - 09:17 #14
ahh ok copy paste fejl :o)
set rs = conn.execute("select * from user WHERE username = '" & session("username") & "'")
session("navn") = rs("navn")
Response.Write rs("navn")
Avatar billede sapworld Nybegynder
22. juli 2005 - 09:18 #15
<%
strSQL = "select * from user WHERE username = '" & session("username") & "'"
set user = Conn.Execute(strSQL)
Response.Write user ("navn")
%>
Avatar billede busschou Praktikant
22. juli 2005 - 09:20 #16
ja jeg lavede en copy paste fejl
men om du benytter "rs" eller "user" er et fedt, det bestemmer du selv :o)
--
<%
strSQL = "select * from user WHERE username = '" & session("username") & "'"
set user = Conn.Execute(strSQL)
session("navn") = user("navn")
Response.Write user ("navn")
%>
Avatar billede sapworld Nybegynder
22. juli 2005 - 09:25 #17
Perfekt - nu virker det. Tak for hjælpen :)

Ok, så du bruer rs is tedet for table navn pga. det er nemmere at huske, eller er der en anden fordel?

Poster du et svar?
Avatar billede busschou Praktikant
22. juli 2005 - 09:27 #18
bare miljø skadet, det står vel for recordset eller resultset eller noget lignende
Hvis jeg skulle lade det referere til user ville jeg kalde det rsUser
Det er mest for ikke at forvirre så man senere i koden måske tror at user er et navn eller andet, men kan se på navnet at det er et resultset :o)

Godt det virker :o)
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