webForumDet fria alternativet

SELECT sats från en session

ASP

8 svar · 223 visningar · startad av henkeny

Medlem sedan maj 200152 inlägg
Frågan#1

Ska hämta ut lite data från en databas. Men jag vill bara hämta datan för en viss användare. När användaren loggar in sätter jag en session med användarnamnet i. När jag sedan på en annan sida ska hämta datan tänkte jag använda just den här session. Tänkte nåt i den här stilen:

Editera = "SELECT * FROM users WHERE Username = '% " Session("username") " %' "

Att det är fel förstår jag, men är jag inne på rätt spår eller är jag helt ute och cyklar??

------------------
Man kommer fortare fram till målet om man kryper åt rätt håll än springer åt fel håll

Medlem sedan juni 200032 967 inlägg
#2

Du är inte alls helt fel ute, du har bara glömt &-tecknen för konkateneringen.

Editera = "SELECT * FROM users WHERE Username = '" & Session("username") & "' "

När du gör en jämförelse med = skall du dock inte ha %-tecken med heller, dessa hör till LIKE-operatorn.

Mvh,

------------------
All your base are belong to me.

[Redigerat av @nders den 15 okt 2001]

Medlem sedan mars 20007 896 inlägg
#3

Ser OK ut, dock bör du ta bort wildcarden... Dom gör så att namn som innehåller samma sträng som finns i sessionen även hämtas.

T.ex.

Session("username") = "bc"

Editera = "SELECT * FROM users WHERE Username = '%" & Session("username") & "%'"
...

Nu kommer namn som t.ex. abc, bcd, osv. att hämtas från databasen då de innehåller strängen bc.

Gör så här istället:

Editera = "SELECT * FROM users WHERE Username = '" & Session("username") & "'"

:)

Red} Lyssna på @nders, han är snabb och har rätt :)

------------------
SPiN, bjorne.w@telia.com

-- Den som går i andras fotspår kommer aldrig först --

[Redigerat av SPiN den 15 okt 2001]

Medlem sedan maj 200152 inlägg
#4

tackar så mycket @nders. Nu funkar det klockers :-)

------------------
Man kommer fortare fram till målet om man kryper åt rätt håll än springer åt fel håll

Medlem sedan dec. 200012 464 inlägg
#5

Editera = "SELECT * FROM users WHERE Username = '" & Session("username") "'"

red: Ojdå.
------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 15 okt 2001]

Medlem sedan maj 200152 inlägg
#6

Är förmodligen så trött i huvet så jag inte ser det, men va är fel i denna kod?

<% '========================================================================================== %>
<% ' Kod för att välja inlägg att redigera %>
<% '========================================================================================== %>
<%

Editera = "SELECT \* FROM users WHERE Username = '" & Session("username") & "' "

RecSet.Open Editera, Connect, adOpenStatic, adLockOptimistic

%\>

Edit your company information!
<form method="POST" action="edit.asp?update=yes">

Username:
<br>
<input type="text" size="30" name="username" value=" <% =RecSet("Username") %>" >

<p> Password:
<br>
<input type="password" size="30" name="password" value=" <% =RecSet("Password") %>" >

<p> Companyname:

<br>
<input type="text" size="30" name="foretagsnamn" value="<% =RecSet("Foretagsnamn") %>" >

<p> Your contactperson:

<br>
<input type="text" size="30" name="kontaktperson" value="<% =RecSet("Kontaktperson") %>" >

<p> E-mail:

<br>
<input type="text" size="30" name="Email">

<p> Presentationtext about company:

<br>
<textarea name="prestext" cols="50" rows="20" value="<% =RecSet("Prestext") %>" > </textarea>
<p>
<input type="Submit" value="Update information">

</form>

<% '====================================================================================== %>
<% ' Formulärskod för att uppdatera inlägg %>
<% '======================================================================================= %>
<% If Request.QueryString("update") = "yes" Then

Updatera = "SELECT \* FROM users "

RecSet.Open Updatera, Connect, adOpenStatic, adLockOptimistic

Dim Datum
Datum = Date 

RecSet("Username") = Request.Form("username")
RecSet("Password") = Request.Form("password")
RecSet("foretagsnamn") = Request.Form("foretagsnamn")
RecSet("kontaktperson") = Request.Form("kontaktperson")
RecSet("email") = Request.Form("email")
RecSet("prestext") = Request.Form("prestext")
RecSet("datum") = Datum

RecSet.Update

RecSet.Close  

Response.Redirect "result.asp?edit=yes" 

%\>

<% End If %>

Får detta felmeddelande:

Feltyp:
ADODB.Recordset (0x800A0E79)
Åtgärden är inte tillåten när objektet är öppet.
/project/edit.asp, line 97

Rad 97 är:
RecSet.Open Updatera, Connect, adOpenStatic, adLockOptimistic

------------------
Man kommer fortare fram till målet om man kryper åt rätt håll än springer åt fel håll

Medlem sedan juni 200032 967 inlägg
#7

Tja, du öppnar RecSet två gånger. Den andra gången är det ju redan öppet.

Mvh,

------------------
All your base are belong to me.

Medlem sedan dec. 200012 464 inlägg
#8
Editera = "SELECT * FROM users WHERE Username = '" & Session("username") & "' "

RecSet.Open Editera, Connect, adOpenStatic, adLockOptimistic

Det finns íngen close här.

------------------
essentitia preter non sans multiplicandum

Medlem sedan maj 200152 inlägg
#9

tackar, ser det nu........ska nog sova ett par timmar nu

tack för allt

/henke

------------------
Man kommer fortare fram till målet om man kryper åt rätt håll än springer åt fel håll

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