Ta bort rad i databas
23 svar · 511 visningar · startad av Anders84
Varför vill inte detta funka?
<%
Call dbOpen(Conn)
Set rsTaBort = Server.CreateObject ("ADODB.Recordset")
if (Request.QueryString ("delete") = 1 ) then
anv = Request.QueryString("anv")
sqlTaBort = "DELETE FROM anvandare WHERE anvandare =" & Request.QueryString("anv")
rsTaBort.Open sqlTaBort,conn
Conn.Close
end if
%>
MVH ANders
Och sen kan man ju bygga på saken så att det blir säkrare:
Dim Id
Id = Cint(Trim(Replace(Request.Querystring("id"),"'","")))
På vilket sätt fungerar det inte?
Felmeddelande?
Inget alls händer, blir inget felmeddelande
Kontrollera att du kommer in i if-satsen. Du får alltid strängar från Request.Querystring, för övrigt, därför ska du inte jämföra med ett tal.
<%
Call dbOpen(Conn)
Set rsTaBort = Server.CreateObject ("ADODB.Recordset")
if (Request.QueryString ("delete") = [b]"1"[/b] ) then
anv = Request.QueryString("anv")
sqlTaBort = "DELETE FROM anvandare WHERE anvandare =" & anv
rsTaBort.Open sqlTaBort,conn
Conn.Close
end if
%>
Eeeeller varför inte skippa Recordsetet?
If Cint(Request.QueryString("delete"))=1 Then
Dim anv
anv = Trim(Replace(Request.QueryString("anv"),"'",""))
Conn.Execute "DELETE *FROM anvandare WHERE anvandare=" & anv,,128
End if
Och ännu lite snyggare:
* Utan onödigt recordset
* Ska du stänga conn-objektet i if-satsen kanske öppningen hör hemma i if-satsen också?
<%
if (Request.QueryString ("delete") = "1" ) then
Call dbOpen(Conn)
anv = Request.QueryString("anv")
sqlTaBort = "DELETE FROM anvandare WHERE anvandare =" & anv
Conn.Execute sqlTaBort, , 128
Conn.Close
end if
%>
mvh
<%
if Request.QueryString("delete") = "1" then
Call dbOpen(Conn)
Conn.execute "DELETE FROM anvandare WHERE anvandare =" & Request.QueryString("anv"),,128
Conn.Close
end if
%>
Massa bra alternativ blev det, men mitt blev väl säkrast, eller..? En kombination av @nders, mitt och solbulles verkar bäst, eller?
I alla fall, massa förslag blev det!
jag fick faktiskt inte nån av koderna att funka måste vara nått annat som är fel med vad vet jag inte.
MVH Anders
Hur ser länken ut som skickar dig till den aktuella sidan?
Men vad får du för felmeddelande..?
Får inget felmeddelande. ska jag skicka hela koden lr?
<%
if Request.QueryString("delete") = "1" then
Call dbOpen(Conn)
Conn.execute "DELETE FROM anvandare WHERE anvandare ='" & Request.QueryString("anv") & "'",,128
Conn.Close
end if
%>
Hur jag än gör så vill de inte funka och de som är jobbigt är att man inte får nått felmeddelande *suck*
Visa hela koden samt hur länken ser ut som för dig till denna sidan!
<!--#include file="adminkoll.asp" -->
<!--#include file="../../koppling.asp" -->
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>Lägg till
ny användare</p>
<form action="addusr.asp" method=post>
<table width="70%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<div align="right">Användarnamn:
</div>
</td>
<td>
<input type="text" name="anv">
</td>
<td> </td>
</tr>
<tr>
<td>
<div align="right">Lösenord:
</div>
</td>
<td>
<input type="text" name="losen">
</td>
<td> </td>
</tr>
<tr>
<td>
<div align="right">Admin:
</div>
</td>
<td>
<input type="checkbox" name="admin" value="1">
</td>
<td> </td>
</tr>
<tr>
<td>
<div align="right"></div>
</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
<div align="right"></div>
</td>
<td>
<input type="submit" name="Skicka" value="Spara">
</td>
<td> </td>
</tr>
</table>
</form>
<%
if (Request.QueryString ("delete") = "1" ) then
Call dbOpen(Conn)
anv = Request.QueryString("anv")
sqlTaBort = "DELETE FROM anvandare WHERE anvandare =" & anv
Conn.Execute sqlTaBort, , 128
Conn.Close
end if
%>
<table width="70%" border="0" cellspacing="0" cellpadding="0">
<tr><td><b>Förnamn:</b></td><td><b>Efternamn:</b></td><td><b>Användarnamn:</b></td><td><b>Behörighet:</b></td></tr>
<tr><td colspan="4"><hr></td></tr>
<%
SQL = "SELECT anvandare, fnamn, enamn, typ FROM anvandare ORDER BY anvandare"
set Rs = Conn.Execute(SQL)
Do Until Rs.EOF
%>
<tr>
<td><%=Rs("fnamn")%></td>
<td><%=Rs("enamn")%></td>
<td><%=Rs("anvandare")%></td>
<td><% if Rs("typ") = 1 then%>Admin<%end if%></td>
<td><a href ="lista.asp?&delete=1&anv=<%=Rs("anvandare")%>">ta bort</a></td>
</tr>
<%
Rs.MoveNext
Loop
Rs.Close
Conn.Close
%>
</table>
</body>
</html>
<%
if Request.QueryString("delete") = "1" then
Call dbOpen(Conn)
Conn.execute "DELETE FROM anvandare WHERE anvandare =" & Request.QueryString("anv"),,128
Conn.Close
end if
%>
<td><a href ="lista.asp?delete=1&anv=<%=Rs("anvandare")%>">ta bort</a></td>
Har du verkligen "tabort"-koden på två ställen i din kod?!?