webForumDet fria alternativet

Går inte radera

ASP

3 svar · 286 visningar · startad av WebbisNet

Medlem sedan feb. 20032 027 inlägg
Frågan#1

Vet inte var jag ska placera den här tråden så ni får flytta den om den är fel

Mitt problen här är att ingen radering sker när jag markerar meddelanden

<form name="eraseMsg" action="delMail1.asp" method="post">
<table style="margin-left:0px; margin-top:0px;" border="0" cellpadding="0" cellspacing="0" class="mailbody" width="750">
<tr class="rubrik_s">

<td height="10" width="20" align="left">&nbsp;</td>
<td height="10" width="130" align="left" valign="top">Från användare</td>
<td height="10" width="120" align="left" valign="top">Datum och Tid</td>
<td height="10" width="450" align="Left" valign="top">Meddelanderubrik</td>
<td height="10" width="20" align="Left"  valign="top">
<a class="menu" href="javascript:eraseMsg();"><U>Radera</U></a>
</td>
</tr>
<tr>
<td colspan="5"><hr></td>
</tr>

<!--Loopa ut poster och sidor-->
<!--#include virtual="/mail/paging.asp"-->

   <tr height="10" style=" onMouseOver="this.style.backgroundColor='#ffad8c';" onMouseOut="this.style.backgroundColor='#FFFFFF';">  
<td width="40">
<%if CBool(objRs("mailRead")) then%>
<img title="Det här PM-et är oläst" border="0" src="/images/icons/email.gif">
<%end if%>
</td>
<td width="150"><a class="menu" target="_top" href="/view.asp?userID=<%=objRs("sender")%>"><%=objRs("username")%></a></td>
<td width="100"><span class="presentation1"><%=right(replace(objRs("mailDate"),"-",""),6)%>&nbsp;<%=left(objRs("mailTime"),5)%></span></td>
<!--<td width="450"><a <%=linkmessage%> class="menu" href="lasIn.asp?sender=<%=objRs("sender")%>&mailID=<%=objRs("mailID")%>&name=<%=objRs("username")%>"><%If objRs("Headline") = "" Then%><%=objRs("mailDate")%><%Else%><%=objRs("Headline")%><%End if%></a></td>-->
<td width="450"><a class="menu" href="lasIn.asp?mailID=<%=objRs("mailID")%>"><%If objRs("Headline") = "" Then%><%=objRs("mailDate")%><%Else%><%=left(objRs("Headline"),50)%><%End if%></a></td>
<td width="90" valign="top"><input class="checkbox" type="checkbox" name="erase" value="<%=objRs("mailID")%>">
<%if objRs("saveMail") = 1 then%>&nbsp;<span class="presentation">Sparat</span>&nbsp;<%end if%></td>

<!--#include virtual="/mail/endPaging.asp"-->

</form>

Koden i delMail1.asp är

<%
Dim objConn, delete

SET objConn = connect()
	
' Här hämtar vi upp strängen med id numren som skall tas bort
strIds = Request.Form("erase")

' Lägger alla värden i en array
arrIds = Split(strIds,", ")

' Det vi gör nu är att vi loopar igenom hela arrayen och genererar en SQL sträng
strSQL = "DELETE FROM tblUsers_imail WHERE"

For Each id In arrIds

If strSQL <> "DELETE FROM tblUsers_imail WHERE" Then strSQL = strSQL & " OR"
strSQL = strSQL & " mailID=" & id

Next

response.write strSQL
'response.end
objConn.Execute(strSQL)
response.redirect "/mail/meddelanden.asp"
Medlem sedan feb. 20032 027 inlägg
#2

hittar inget fel nånstans, kan köra med en radera-länk på varje rad, men snyggare och enklare om man kan köra med checkboxar

Medlem sedan feb. 20032 027 inlägg
#3

Jag körde "manuellt" med vanlig länk istället

Medlem sedan apr. 20031 660 inlägg
#4

HEJ!

Det ser ut som att du samlar ihop alla värden till en sträng med OR emellan i din For Each?

Kontrollerade du vad du fick för resultat av den?

Enklare vore att istället använda IN, dvs "DELETE FROM tbl WHERE id IN (2,4,7,34)"

266 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)