22. juli 2005 - 00:12Der 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") %>
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")'"
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
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") & "'"
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 ?
æ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:
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") & "' )"
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'.
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") %>
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)
Synes godt om
Ny brugerNybegynder
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.