webForumDet fria alternativet

Hjälp

67 svar · 266 visningar · startad av jboy_87 · sida 2 av 4

jboy_87Medlem sedan aug. 20011 099 inlägg
#21

funkar inte

------------------
ASP är bäst fuck the rest!!!

jboy_87Medlem sedan aug. 20011 099 inlägg
#22

do_delete2

Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
/do_delete2.asp, line 15

<!-- #include file="adovbs.inc" -->

<% If NOT session("login") = "ok" THEN %>
<%Session("meddelande") = "Du måste logga in för att kunna besöka den begärda sidan" %>
<script language = "javascript">
top.location.href='default.asp';
</script>
<% end if%>

<%Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("Database/gb.mdb")&";"
sql = "delete From gb Where ID=" &Request.QueryString("delID") 
sql = sql & " and (name = '" & session("name") & "' or tillid = " & session("id") & ")"
[b]connect.execute sql,rows,128[/b]
if rows = 0 then
response.write "Du får bara ta bort dina inlägg eller de som är skriva till dig"
end if
connect.close
Set Connect = nothing
Response.Redirect "read_gb.asp?tillid=" & session("id")
%>

------------------
ASP är bäst fuck the rest!!!

LarsGMedlem sedan dec. 200012 464 inlägg
#23

Hur ser din tabell ut? Felet beror på att det är något kolumnnamn i delete-satsen som inte stämmer med tabelldefinitionen.

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

jboy_87Medlem sedan aug. 20011 099 inlägg
#24

öö fattar ej

------------------
ASP är bäst fuck the rest!!!

jboy_87Medlem sedan aug. 20011 099 inlägg
#25

id = id
username = användarnamn
fnamn = förnamn
enamn = efternamn

------------------
ASP är bäst fuck the rest!!!

jboy_87Medlem sedan aug. 20011 099 inlägg
#26

Gäsbokens databas

ID
TillID
datum
namn
text

------------------
ASP är bäst fuck the rest!!!

LarsGMedlem sedan dec. 200012 464 inlägg
#27

Det skall vara namn istf name i deleete-satsen

sql = "delete From gb Where ID=" &Request.QueryString("delID") 
sql = sql & " and (namn = '" & session("namn") & "' or tillid = " & session("id") & ")"

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

jboy_87Medlem sedan aug. 20011 099 inlägg
#28

nu går det inte och radera bort igen

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'ID= and (namn = 'Josef Kalkana' or tillid = 2)'.
/do_delete2.asp, line 15

------------------
ASP är bäst fuck the rest!!!

jboy_87Medlem sedan aug. 20011 099 inlägg
#29

snälla nån snart är det klart säkert bara några fel snuttar

------------------
ASP är bäst fuck the rest!!!

jboy_87Medlem sedan aug. 20011 099 inlägg
#30

skriver ut ta bort länken:

<% If clng(recset("tillid")) = clng(Session("id")) or cstr(session("namn")) = cstr(recset("namn")) Then %>
- <a href="do_delete2.asp?id=<%=RecSet("ID")%>">
<font size="1" face="Verdana">Ta bort.</font></a></font><%End If%>
</td>
</tr>

Delete:

<%Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("Database/gb.mdb")&";"
sql = "delete From gb Where ID=" &Request.QueryString("delID") 
sql = sql & " and (id = '" & session("namn") & "' or tillid = " & session("namn") & ")"
connect.execute sql,rows,128
if rows = 0 then
response.write "Du får bara ta bort dina inlägg eller de som är skriva till dig"
end if
connect.close
Set Connect = nothing
Response.Redirect "read_gb.asp?tillid=" & session("id")
%>

------------------
ASP är bäst fuck the rest!!!

LarsGMedlem sedan dec. 200012 464 inlägg
#31

I delete-länken så står det

delete_2.asp?id

men sedan i delete_2 så använder du

request.querystring("delid").

Då det inte finns någon sådan variabel i querystring så blir det en tom sträng när du bygger ihop delete-satsen.

Om du ändrar till

delete_2.asp?delid

så kanske

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

jboy_87Medlem sedan aug. 20011 099 inlägg
#32

tack så mycket :-) LarsG äntligen

------------------
ASP är bäst fuck the rest!!!

LarsGMedlem sedan dec. 200012 464 inlägg
#33

så bra.

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

[Redigerat av LarsG den 19 nov 2001]

jboy_87Medlem sedan aug. 20011 099 inlägg
#34

men Lars fan ännu ett problem när jag klickar på användaren och kollar in hans gästbok och vill radera de inlägg jag skrev så funkar det får felmeddelandet:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][Drivrutin för ODBC Microsoft Access] Typblandningsfel i villkorsuttryck.
/do_delete2.asp, line 15

<%Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("Database/gb.mdb")&";"
sql = "delete From gb Where ID=" &Request.QueryString("delID") 
sql = sql & " and (id = '" & session("namn") & "' or tillid = " & session("id") & ")"
[b]connect.execute sql,rows,128[/b]
if rows = 0 then
response.write "Du får bara ta bort dina inlägg eller de som är skriva till dig"
end if
connect.close
Set Connect = nothing
Response.Redirect "read_gb.asp?tillid=" & session("id")
%>

------------------
ASP är bäst fuck the rest!!!

VideMedlem sedan dec. 19998 577 inlägg
#35

Ursäkta min okunnighet, men vad gör 'rows'?

Testa detta:

connect.execute sql,,128

------------------
Doesn't 'expecting the unexpected' make the unexpected expected?
webeye.nu

jboy_87Medlem sedan aug. 20011 099 inlägg
#36

det blir ju samma sak

------------------
ASP är bäst fuck the rest!!!

@ndersMedlem sedan juni 200032 969 inlägg
#37

Vide: rows borde efter execute innehålla RecordsAffected, alltså ett värde som berättar hur många poster som påverkades av SQL-frågan.

JBoy, vad är det för datatyper i tabellen på de fält du använder i SQL-frågan?

Mvh,

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

jboy_87Medlem sedan aug. 20011 099 inlägg
#38

id
tillid
datum
namn
text

------------------
ASP är bäst fuck the rest!!!

jboy_87Medlem sedan aug. 20011 099 inlägg
#39

har gjort såhär:
och det funkar tror jag!!

<%Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("Database/gb.mdb")&";"

Set RecSet = Server.CreateObject("ADODB.Recordset")

sql = "delete From gb Where ID=" &Request.QueryString("delID") 
sql = sql & " and (id = '" & session("namn") & "' or tillid = " & session("id") & ")"
on error resume next
connect.execute sql,,128

Addera = "Select * From gb Where ID=" &Request.QueryString("delID")
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

RecSet.Delete

	RecSet.Update
	RecSet.Close
	Set RecSet = nothing
	Set Connect = nothing
	
connect.close
Set Connect = nothing
Response.Redirect "read_gb.asp?tillid=" & session("id")
%>

------------------
ASP är bäst fuck the rest!!!

@ndersMedlem sedan juni 200032 969 inlägg
#40

Uhm, vad var det svar på? Vad är vad?

Din SQL-fråga ser konstig ut. Du anger id på två ställen, den ena anger du som ett textfält, den andra som ett tal, och dessutom jämför du med olika värden och ett AND emellan.

Jag markerar med fett nedan. Skall det id verkligen vara ID, inte något annat fält?

sql = "delete From gb Where ID=" &Request.QueryString("delID") 
sql = sql & " and ([b]id[/b] = '" & session("namn") & "' or tillid = " & session("id") & ")"

Mvh,

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

140 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)