27. december 2003 - 09:57Der er
52 kommentarer og 1 løsning
insæt data i db?
hej til alle.
Jeg har en side hvor man kan oprette sig som kunde igennem en formuler og så trykker man på en knap "opret bruger" så gemmer den alle informationerne rigtigt i databasen.
problemet er så det at jeg gerne vil have at når man trykker på knappen "opret bruger" at den stadige gemmer alt men at efterfølgende visser alle de informationer man har tastet ind.(altså en bekræftelse).
er der nogen der ved hvordan sådan noget ser ud i kode? og hvordan får man fat i lige den record?
hvis du indsætter i en database med autonumering (ofte kollonen id) kan du sortere faldende vha ORDER BY id DESC sidst i din SQL statement. for at trække den sidst oprettet bruger ud kan du gøre således:
syntax_hh >> nu vil jeg så mene at sansynligheden for at to bruger opretter sig med så kort mellemrum at det ville give anledning til problemer. bygger du din påstand på erfaring eller gæt?
Først laver du en connection og derefter: <% strSQL = "SELECT TOP 1 * FROM tabel ORDER BY id DESC" Set rs = conn.execute(strSQL) %> Du er oprettet med disse oplysninger:<br> Brugernavn: <%=rs("brugernavn")%><br>
Sql = "Select Count(*) as Found from user where (username = '" & strUsername & "') and (password ='" & strPassword & "')" Set LO = RS.Execute(Sql) if LO("Found") = 0 then Session("login") = "" error = "Du blev ikke godkendt af systemet !" else strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("min.db") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN strSQL = "SELECT * FROM user where (username = '" & Request("username") & "') and (password ='" & Request("password") & "')" Set ez = myConn.Execute(strSQL) Session("login") = "yes mate" Response.Redirect "default.asp" EZ.Close RS.Close Conn.Close end if end if %>
<% strSQL = "SELECT TOP 1 * FROM tabel ORDER BY id DESC" Set rs = conn.execute(strSQL) %> Du er oprettet med disse oplysninger:<br> Brugernavn: <%=rs("brugernavn")%><br>
den melder fejl i (Set rs = conn.execute(strSQL)) og siger
Error Type: Microsoft VBScript runtime (0x800A01A8) Object required: 'Conn' /tester/delete.asp, line 48
<% strSQL = "SELECT TOP 1 * FROM tabel ORDER BY id DESC" Set rs = conn.execute(strSQL) %> Du er oprettet med disse oplysninger:<br> Brugernavn: <%=rs("brugernavn")%><br>
<% strSQL = "SELECT TOP 1 * FROM Skriv tabelnavnet her!! ORDER BY id DESC" Set rs = xDb_Conn_Str.execute(strSQL) %> Du er oprettet med disse oplysninger:<br> Brugernavn: <%=rs("brugernavn")%><br>
<% strSQL = "SELECT TOP 1 * FROM OpretBooking ORDER BY id DESC" Set rs = xDb_Conn_Str.execute(strSQL) %> Du er oprettet med disse oplysninger:<br> Brugernavn: <%=rs("navn")%><br>
det hele ser sådan ud : <% dim xDb_Conn_Str xDb_Conn_Str = "Data Source=C:\Documents and Settings\Administrator\Desktop\sitetester\db\AnatolienRejser.mdb;Provider=Microsoft.Jet.OLEDB.4.0; Jet OLEDB:Database Password=dogan;" %>
<%
strSQL = "SELECT TOP 1 * FROM OpretBooking ORDER BY id DESC" Set rs = xDb_Conn_Str.execute(strSQL) %>
Du er oprettet med disse oplysninger:<br> Brugernavn: <%=rs("navn")%><br> :)
det kan jeg se nu, du har valgt at kalde din connections for rs. her ville jeg personligt vælge at kalde den conn. men følgende burde virker i dit tilfælde:
<% strSQL = "SELECT TOP 1 * FROM OpretBooking ORDER BY id DESC" Set oRS = rs.execute(strSQL) %> Du er oprettet med disse oplysninger:<br> Brugernavn: <%=oRS("navn")%><br>
hmm alt respect for det, med nrå du bruger TOP 1 er det ikke sikkert du får vist det rigtigt brugernavn, hvis to brugere opretter sig på samme tid ved den ene se dens nyeste brugernavn og ikke det han har oprettet sig med.
Når man opretter en bruger skal man hendte ID ud fra databasen og det kan man gøre på et par forskellige måder alt efter database og så bruge det ID til at hendte fra databasen.
<% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.JET.OLEDB.4.0;Date Source=" & Server.MapPath("somedir/somedb.mdb")
'Først indsæt data SQL = "INSERT INTO tabelNavn (kol1, kol2) VALUES('abc', 'xyz')" Conn.Execute (SQL)
'Find sidste tilføjet ID SQL = "SELECT @@IDENTITY FROM tabelNavn" Set RS = Conn.Execute(SQL) nytID = RS(0) RS.Close response.write nytID %>
Hvis dette eksemple giver udskriver 0 så er der en anden metode
Prøv at tage din connection fra en side som virker og put den ind på den nye side så. Tilføj dette:
<% strSQL = "SELECT TOP 1 * FROM OpretBooking ORDER BY id DESC" Set rs = Conn.execute(strSQL) %> Du er oprettet med disse oplysninger:<br> Brugernavn: <%=rs("navn")%><br>
Vær opmærksom på denne linje: Set rs = Conn.execute(strSQL) At Conn skal være navnet på den connection object du bruger,.
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.