29. november 2000 - 13:36Der er
51 kommentarer og 1 løsning
Udtræk fra database!
Jeg er ved at lave et adresse projekt. Projektet går ud på at lave et system hvor flere brugere kan have deres eget lille adresse kartotek.
Det jeg har lavet indtil videre er: login system, som henter oplysninger fra en database. Når man har logged ind gemmes sit login navn i: UserID og kan hentes ved: <% Response.Write \"\" & session(\"UserID\") & \"\" %>.
ideen er så, når de adder en ny person til deres kartotek addes UserID til ID i kartoteket via. en hidden input med variablen userID.
Problemet er så, at jeg ikke ved hvordan man kan hente fra en database, så de eneste udsnit der bliver hentet er de hvori ID=deres UserID!.. Altså alle oplysninger gemmes i et stort kartotek, men med deres eget personlige userid som ID ud for hver gemte data. Og derved kun kan se deres egne gemte date(dem med ID=userid)...
Som sagt ved jeg ikke hvordan man kun udtrækker de data fra(scheduler.mdb Access -> ID .. hvor id er det samme som UserId blev sat til ved login..).. any idears ?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
<% strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"*****.mdb\") Set myConn = Server.CreateObject(\"ADODB.Connection\") myConn.Open strDSN \'hentet fra HTML dokument \'formdata indsættes i databasen
addresse = Request.Form(\"addresse\") Dato = Date() user = session(\"UserID\")
Id = 1 StrSQL = \"INSERT INTO TNoter(Dato, Addresse, UserID) VALUES (\'\"&Dato&\"\',\'\"&Addresse&\"\',\'\"&UserID&\"\')\" Set rs = myConn.Execute(strSQL)
%>
nu sætter den values ind i databasen, og et felt ind hvor der står hvad navn der har oprettet den. På denne måde kan du så vælge at det kun er dem med dette bruger navn der kan hente disse data.
SQL = \"SELECT noget FROM access WHERE id=\'\" & id & \"\';\"
Da min grupper hedder access.. men ehmm hvordan sætter jeg Where id= <-- skal sættes så ID = userId .. som jeg kan hente.. session(userID).. ehmm jeg kan ikke rigtig se.. hvordan .. og hvorledes..! :)
elleb: ehmm var nu ikke hvordan det skulle sættes ind.. det er jo nemt nok.. bruger bare en hidden input box.. i min form.. med variablen UserID (har jeg lavet..) det var nu mere hvordan man kun vælger de data hvor id er sat til det samme som userid :)
session(userid) bliver sat til den persons brugerId der logger ind. (forskellige brugerids..).. derefter alt hvad denne person adder til access hvorfi der er en kolonne med navnet ID.. bliver kolonnen id sat til det brugerid som personen loggede ind med..
det eneste jeg sådan set spørger om.. er hvordan man kan hente KUN DE felter ud.. hvor id er sat til det brugerid som er logged ind med! :)
(nu er jeg selv lidt forviret.. må i undskylde) :)
når du andvender sql skal du helst ikke bruge * til udvælgelse af felterne, men skrive navnene på felterne. På den måde er du sikker på ikke at få for meget med. Ellers er den sql der er skrevet flere steder her på siden korrekt.
ok fortæl mig hvad den session som kommer fra login siden hedder og hvad kolonne den id står i så kan jeg vise dig det! Også hvad selve tabellen hedder.
Fortæl mig lige hvad der kan ske......hvis jeg bruger *..... har aldrig haft problemer desuden er det lettere end at skrive alle kolonne navne. Hvis man skal have flere ting ud fra db\'en
SQL = \"SELECT * FROM Tablename WHERE Userid LIKE \'\"&Request(\"Form-field-name\")&\"\'\"
hvor tablename er din tabel Userid er dit feltnavn i tabellen og Form-field-name er det navn du har givet det felt hvor du taster Userid ind på din login-site!
<--------vis ham der logger ind------------> Sql = \"SELECT * FROM tabelnavn WHERE userid=\"& Session(\"userid\") Set Sql = Conn.Execute(Sql) <--------------------------------------den er der
<---------viser alle----------------> Sql = \"SELECT * FROM tabelnavn ORDER BY kolonnenavn\" Set Sql = Conn.Execute(Sql) <----------------------------------og der
<%Do while not Sql.EOF%> <%=Sql(\"kolonnenavn\")%> <% Sql.Movenext Loop %>
ubbe: scheduler.mdb login kommer fra \'Users\'.. som ved login (brugernavn) bliver sat til \'UserID\' <-- Den \"variabel\" som jeg bruger til genkendelse af ens egne indslag!
access <-- der ens indslag gemmes. har en kolone \'ID\' hvor hvad der står i \'userid\' bliver gemt.. når man adder noget.. så den kan genkende ens via. brugernavnet(userid)...
Hvorfor bruge ordet \"like\"??? Det her er sku da ikke en søgefunktion! Nej det skal ikke være ca. den brugers is men id der er fuldstændig identisk, derfor skal \"like\" ikke bruges. Brug = istedet
Der er i øvrigt ikke noget i vejen for at bruge * i SQL
Jeg mener det her forvirre mere end det gavner.......
<% strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"*****.mdb\") Set myConn = Server.CreateObject(\"ADODB.Connection\") myConn.Open strDSN \'hentet fra HTML dokument \'formdata indsættes i databasen
addresse = Request.Form(\"addresse\") Dato = Date() user = session(\"UserID\")
Id = 1 StrSQL = \"INSERT INTO TNoter(Dato, Addresse, UserID) VALUES (\'\"&Dato&\"\',\'\"&Addresse&\"\',\'\"&UserID&\"\')\" Set rs = myConn.Execute(strSQL)
%>
nu sætter den values ind i databasen, og et felt ind hvor der står hvad navn der har oprettet den. På denne måde kan du så vælge at det kun er dem med dette bruger navn der kan hente disse data.
-Ellebaek Icq#29506560
Fortsat svar fra ellebaek 29/11 2000 13:52:15 addresse = Request.Form(\"addresse\") Dato = Date() user = session(\"UserID\")
skal selvfølgelig være ...
addresse = Request.Form(\"addresse\") Dato = Date() UserID = session(\"UserID\") -Ellebaek
Set Sql = Conn.Execute(\"SELECT * FROM access WHERE id=\"& Session(\"userid\"));
!
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.