Avatar billede frank74 Nybegynder
04. maj 2006 - 01:19 Der er 11 kommentarer og
1 løsning

Opdatering af database

Jeg har et problem jeg godt kunne tænke mig lidt hjælp til.

Mit script ser således ud :

-------------------------------------

<html>
<head>
<meta name="Generator" content="Stone's WebWriter 4">
<title>Vis Brugere</title>
</head>

<body text="#000000" link="#FFC600" vlink="#FFC600" alink="#975386">

<br><br>
<div style="text-align:center">
<form action="slet_bruger.asp" method="post">

<table border="1" cellpadding="0" width="700" cellspacing="4">
  <tr align="center">
    <td>Slet</td>
    <td>Efternavn</td>
    <td>Fornavn</td>
    <td>Brugernavn</td>
    <td>Status</td>
    <td>MON</td>
    <td>Nyhedsbrev</td>
  </tr>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("login.mdb")
Conn.Open DSN

strSQL = "Select * From Users Order By Lastname Asc"
Set rs = Conn.Execute(strSQL)

do while not rs.EOF
%>

  <tr align="center">
    <td><input type="checkbox" name="check" value="<%=rs
    "UserID")%>"></td>
    <td><%=rs("LastName")%></td>
    <td><%=rs("FirstName")%></td>
    <td><%=rs("Username")%></td>
    <td><%=rs("Admin")%></td>
    <td><%=rs("MON")%></td>
    <td><%=rs("News")%></td>
  </tr>

<%
  rs.MoveNext
loop

rs.close
Conn.Close
Set Conn = Nothing
%>

</table>

<br>
<input type="submit" value="Slet valgte">

</form>
</div>                   

</body>

</html>

-------------------------------------

Se eksemplet her -> http://www.morphius.dk/temp/

Scriptet virker fint nok og det er med vilje at jeg ikke har uploadet "slet_bruger.asp" som i øvrigt ser sådan ud :

-------------------------------------

<html>
<head>
    <title>[Ingen titel]</title>
<meta name="Generator" content="Stone's WebWriter 4">
</head>
<body>
<%
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("login.mdb")
SQL = "DELETE FROM users WHERE UserID IN (" & request.form("check") & ")"
set cn = Server.CreateObject("ADODB.Connection")


cn.Open DSN
cn.Execute SQL
cn.Close
Set cn = Nothing

Response.Redirect "vis_brugere.asp"

%>
</body>
</html>

-------------------------------------

Hvordan får jeg lavet mit script så jeg kan redigere i f.eks. Fornavn og så gemme det i databasen???
Avatar billede Slettet bruger
04. maj 2006 - 01:47 #1
Du skal lave en til asp-fil som kan dette som du så linker til....

for eksempel:

<html>
<head>
<meta name="Generator" content="Stone's WebWriter 4">
<title>Vis Brugere</title>
</head>

<body text="#000000" link="#FFC600" vlink="#FFC600" alink="#975386">

<br><br>
<div style="text-align:center">
<form action="slet_bruger.asp" method="post">

<table border="1" cellpadding="0" width="700" cellspacing="4">
  <tr align="center">
    <td>Slet</td>
    <td>Efternavn</td>
    <td>Fornavn</td>
    <td>Brugernavn</td>
    <td>Status</td>
    <td>MON</td>
    <td>Nyhedsbrev</td>
<td></td>
  </tr>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("login.mdb")
Conn.Open DSN

strSQL = "Select * From Users Order By Lastname Asc"
Set rs = Conn.Execute(strSQL)

do while not rs.EOF
%>

  <tr align="center">
    <td><input type="checkbox" name="check" value="<%=rs
    "UserID")%>"></td>
    <td><%=rs("LastName")%></td>
    <td><%=rs("FirstName")%></td>
    <td><%=rs("Username")%></td>
    <td><%=rs("Admin")%></td>
    <td><%=rs("MON")%></td>
    <td><%=rs("News")%></td>
<td>
<a href="edit.asp?id=<%=rs("id")%>">
edit
</a>
</td>
  </tr>

<%
  rs.MoveNext
loop

rs.close
Conn.Close
Set Conn = Nothing
%>

</table>

<br>
<input type="submit" value="Slet valgte">

</form>
</div>                   

</body>

</html>

- dette kræver så at du har en primærnøgle i databasen som hedder "id"...

så skal du have en asp-fil som hedder edit.asp

og her kan du så lave et simpelt databaseopslag hvor du kan ændre i det via en form, og så evt. gemme det i samme fil...

\Dan
Avatar billede frank74 Nybegynder
04. maj 2006 - 02:26 #2
Hmmm.
Hvis du får tid engang må du da meget gerne fortælle mig hvordan edit.asp skulle se ud...
Er ikke særligt skrap til ASP. ;-)
Avatar billede Slettet bruger
04. maj 2006 - 03:17 #3
Med glæde!

måske sådan her... Men har du en primærnøgle som hedder "id"?

- nå men måske kan dette her bruges til noget...
<%
if request.querystring("id") <> "" then
    if request.querystring("act") = "save" then
%>
<!-- #include file="ADOVBS.inc" -->
<%
Set rsSave = Server.CreateObject("ADODB.RecordSet")
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("login.mdb")
rsSave.open "Users", strDSN, adOpenDynamic, adLockOptimistic, adCmdTable
rsSave.find "id=" & request.querystring("id") & ""
rsSave("LastName") = request.form("Lastname")
rsSave("FirstName") = request.form("Firstname")
rsSave("Username") = request.form("Username")
rsSave("Admin") = request.form("Admin")
rsSave("MON") = request.form("MON")
rsSave("News") = request.form("News")
rsSave.update
rsSave.close
set rsSave = Nothing
response.redirect request.servervariables("script_name") & "?id=" & request.querystring("id")
    end if   
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("login.mdb")
Conn.Open DSN

strSQL = "Select * From Users WHERE id=" & request.querystring("id") & ""
Set rs = Conn.Execute(strSQL)
Lastname = rs("LastName")
Firstname = rs("FirstName")
Username = rs("Username")
Admin = rs("Admin")
MON = rs("MON")
News = rs("News")
rs.close
set rs=nothing
Conn.close
set Conn=nothing
%>
<html>
<head>
<title>EDIT <%=ucase(Firstname)%></title>
</head>
<body>
<form action="<%=request.servervariables("script_name")%>?act=save&id=<%=request.querystring("id")%>" method="post">
Firstname: <input type="text" name="Firstname" value="<%=Firstname%>">
<br>
Lastname: <input type="text" name="Lastname" value="<%=Lastname%>">
<br>
Username: <input type="text" name="Username" value="<%=Username%>">
<br>
Admin: <input type="text" name="Admin" value="<%=Admin%>">
<br>
MON: <input type="text" name="MON" value="<%=MON%>">
<br>
News: <input type="text" name="News" value="<%=News%>">
</form>
</body>
</html>
<%
else
response.redirect "./"
end if
%>

- denne her metode kræver så at du har filen ADOVBS.inc i samme mappe...
hvis du ikke har filen kan jeg sende den til din mail hvis det er...

\Dan
Avatar billede frank74 Nybegynder
04. maj 2006 - 04:36 #4
Ok. Den fil må du hellere sende til mig så. :-)
Der mangler en knap så jeg kan gemme ændringerne, men der skal dette vel bare indsættes : "<input type="submit" value="opdater" name="send">  ??
Desuden er jeg lidt forvirret ang id... I min Database hedder den primære nøgle "UserID" Skal jeg så lave dette om nu??
Avatar billede frank74 Nybegynder
04. maj 2006 - 04:38 #5
Hov... Send filen til morphius@morphius.dk
Og mange tak for hjælpen indtil videre. ;-)
Avatar billede Slettet bruger
04. maj 2006 - 14:59 #6
Hej

Det beklager jeg! Jeg laver det lige med en submit-knap her... Og så er det også "UserID" vi skal bruge...

edit.asp:

<%
if request.querystring("id") <> "" then
    if request.querystring("act") = "save" then
%>
<!-- #include file="ADOVBS.inc" -->
<%
Set rsSave = Server.CreateObject("ADODB.RecordSet")
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("login.mdb")
rsSave.open "Users", strDSN, adOpenDynamic, adLockOptimistic, adCmdTable
rsSave.find "UserID=" & request.querystring("id") & ""
rsSave("LastName") = request.form("Lastname")
rsSave("FirstName") = request.form("Firstname")
rsSave("Username") = request.form("Username")
rsSave("Admin") = request.form("Admin")
rsSave("MON") = request.form("MON")
rsSave("News") = request.form("News")
rsSave.update
rsSave.close
set rsSave = Nothing
response.redirect request.servervariables("script_name") & "?id=" & request.querystring("id")
    end if   
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("login.mdb")
Conn.Open DSN
strSQL = "Select * From Users WHERE UserID=" & request.querystring("id") & ""
Set rs = Conn.Execute(strSQL)
Lastname = rs("LastName")
Firstname = rs("FirstName")
Username = rs("Username")
Admin = rs("Admin")
MON = rs("MON")
News = rs("News")
rs.close
set rs=nothing
Conn.close
set Conn=nothing
%>
<html>
<head>
<title>EDIT <%=ucase(Firstname)%></title>
</head>
<body>
<form action="<%=request.servervariables("script_name")%>?act=save&id=<%=request.querystring("id")%>" method="post">
Firstname: <input type="text" name="Firstname" value="<%=Firstname%>">
<br>
Lastname: <input type="text" name="Lastname" value="<%=Lastname%>">
<br>
Username: <input type="text" name="Username" value="<%=Username%>">
<br>
Admin: <input type="text" name="Admin" value="<%=Admin%>">
<br>
MON: <input type="text" name="MON" value="<%=MON%>">
<br>
News: <input type="text" name="News" value="<%=News%>">
<br>
<input type="submit" name="submit" value="opdater">
</form>
</body>
</html>
<%
else
response.redirect "./"
end if
%>

- og her den først fil - der hvor oversigten over brugere er:

<html>
<head>
<meta name="Generator" content="Stone's WebWriter 4">
<title>Vis Brugere</title>
</head>

<body text="#000000" link="#FFC600" vlink="#FFC600" alink="#975386">

<br><br>
<div style="text-align:center">
<form action="slet_bruger.asp" method="post">

<table border="1" cellpadding="0" width="700" cellspacing="4">
  <tr align="center">
    <td>Slet</td>
    <td>Efternavn</td>
    <td>Fornavn</td>
    <td>Brugernavn</td>
    <td>Status</td>
    <td>MON</td>
    <td>Nyhedsbrev</td>
<td></td>
  </tr>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("login.mdb")
Conn.Open DSN

strSQL = "Select * From Users Order By Lastname Asc"
Set rs = Conn.Execute(strSQL)

do while not rs.EOF
id = rs("UserID")
%>

  <tr align="center">
    <td><input type="checkbox" name="check" value="<%=id%>"></td>
    <td><%=rs("LastName")%></td>
    <td><%=rs("FirstName")%></td>
    <td><%=rs("Username")%></td>
    <td><%=rs("Admin")%></td>
    <td><%=rs("MON")%></td>
    <td><%=rs("News")%></td>
<td>
<a href="edit.asp?id=<%=id%>">
edit
</a>
</td>
  </tr>

<%
  rs.MoveNext
loop

rs.close
Conn.Close
Set Conn = Nothing
%>

</table>

<br>
<input type="submit" value="Slet valgte">

</form>
</div>                   

</body>

</html>


- Jeg har hermed sendt filen adovbs.inc til dig...

\Dan
Avatar billede frank74 Nybegynder
04. maj 2006 - 23:18 #7
Det virker jo bare som det skal. Smider du lige et svar og så skal du da lige have tusinde tak for hjælpen. :-)
Lige en sidste lille ting. Når jeg trykker på opdater vil jeg gerne tilbage til den første side. Hvordan gør jeg det. Der skal vel en "response.redirect" ind i edit.asp et eller andet sted!! Men hvor???
Avatar billede Slettet bruger
04. maj 2006 - 23:46 #8
Jamen det var da så lidt!
- her et svar!

- for at komme ud til den første side efter edit.asp skal du ændre følgende:

response.redirect request.servervariables("script_name") & "?id=" & request.querystring("id")

til:

response.redirect "./"
- og hvis dette ikke virker så:
response.redirect "AdressenPåMinFørsteSide.asp"

\Dan
Avatar billede frank74 Nybegynder
05. maj 2006 - 11:02 #9
Jamen så virker det jo også. Endnu engang mange tak. ;-)
Avatar billede Slettet bruger
05. maj 2006 - 12:58 #10
- det var så lidt!
Avatar billede frank74 Nybegynder
05. maj 2006 - 13:01 #11
Dan my man... Jeg har et spørgsmål her som du garanteret også har svaret på. :-)
http://www.eksperten.dk/spm/707485
Avatar billede Slettet bruger
05. maj 2006 - 13:33 #12
- ja det har je også allerede svaret på!

\Dan
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