webForumDet fria alternativet

Ta bort flera poster!

ASP

9 svar · 256 visningar · startad av Wiklund!!

Medlem sedan juli 2002549 inlägg
Frågan#1

Har en funktion där man kan markera de meddelanden man vill ta bort i en inkorg. Jag har den här koden som fungerar bra, men jag vill lägga till så jag kan kolla om meddelandena är olästa eller inte.

strSQL=" DELETE from meddelande WHERE ID IN (" & Request.Form("radera") &") "

Connect.execute strSQL,,128

Alltså så här ungefär (vilket inte fungerar, hittar inte fältet last):

strSQL=" DELTE from meddelande WHERE ID IN (" & Request.Form("radera") &") "

If RecSet("last") = "0" then
Session("amail") = -1
End If

Connect.execute strSQL,,128

Någon som vet hur jag ska göra?

Medlem sedan nov. 20017 144 inlägg
#2

Du öppnar ju aldrig något recset då blir det så.
Jag tror att det är smartare att ha en boolean på "last".(true/false)

conn='Din databasöppning
sql="select last from meddelande Where id="&request("radera")' Eller vad det nu skall vara
Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.Open sql, conn
If RecSet("last") = false then 
Session("amail") = -1 
End If
RecSet.close
Conn.close
Medlem sedan juli 2002549 inlägg
#3

Fattar inte vad du menar =( Med den koden du gav mig så kommer ju inte några poster att raderas, eller? Och hur vet koden att last är false?

Ska jag först ha denna kod:

strSQL=" DELTE from meddelande WHERE ID IN (" & Request.Form("radera") &") "

Connect.execute strSQL,,128

och sen den jag fick från dig?

Kanske bara jag som är trög!?

Medlem sedan nov. 20017 144 inlägg
#4

Jag fattar inte riktigt vad du skall göra för om du först tar bort posten med id:t request("radera"), så kommer det ju inte finnas någon post kvar med id:t request("radera") när du skall kolla om det är läst eller ej.
Vad skall du ha detta till?

Och hur vet koden att last är false?

Du får sätta läst på "true" när man läser tråden.
I Access så är boolean en liten kryssruta, där ett kryss betyder true och följdaktligen, en tom ruta betyder false :).

Medlem sedan juli 2002549 inlägg
#5

Vad jag ska ha det till: Jag har en brevlåda där man kan markera de inlägg man vill ta bort genom checkboxs.
Jag har också en session som innehåller antal nya meddelanden (visas på startsidan bla, du har 3 nya meddelanden typ). När man ta bort ett nytt meddelande som man inte har läst vill jag att sessionen ska minskas med ett.
Så jag måste på nått sätt kolla om RecSet("last") är 0 (nytt) eller 1 (gammalt).. Om last är 1 så ska sessionen minskas med 1.

Hoppas du fattar vad jag menar!

Medlem sedan nov. 20017 144 inlägg
#6

Session("amail") = cInt(Session("amail")) -1

Medlem sedan juli 2002549 inlägg
#7

SKiter i det... får det inte att fungera.
Men tack endå!

Medlem sedan nov. 20017 144 inlägg
#8

Har du checkboxar som du klickar i så kommer det inte gå att radera alla icheckade om du inte lägger det hela i en loop, men det kanske du har?

Medlem sedan juli 2002549 inlägg
#9

Har ingen loop... Den här koden fungerar, men inte när jag lägger till kod som kollar om meddelandena är olästa eller inte.

Kod:

strSQL=" DELETE from meddelande WHERE ID IN (" & Request.Form("radera") &") "

Connect.execute strSQL,,128

Medlem sedan juli 2002549 inlägg
#10

Tror det fixar sig på ett annat sätt.. Om jag först tar bort meddelandena, sen kollar jag hur många av medlemmens meddelanden som är ny och sätter det i sessionen!

264 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)