Jag har ett litet problem...
Jag håller på och gör en funktion så att man kan skicka privata meddelanden till varandra. Har fått problem med raderingsbiten. Koden under tar bort flera marerade inlägg precis som jag vill. Nu är det så att när man raderar ett från utkorgen som ännu inte blivit läst så vill jag även ta bort det från andra personens inkorg. Hur kan man göra det på ett bra sätt?
meddelandena ligger som två rader i databasen. Det gäller ASP/MySQL.
Har en relation mellan raderna i databasen.
Ex på hur databasen ser ut
IsmID______sender_____receiver_____original_____showed
234________34_________45__________0___________0000-00-00 00:00:00
235________34_________45__________234________0000-00-00 00:00:00
236________13_________42__________0___________0000-00-00 00:00:00
237________13_________42__________236________2003-09-29 18:16:12
skickade meddelanden får original=0. Vill jag radera post med ID=234 så ska alltså även 235 raderas eftersom där inte fnn något datum i kolumnen showed. Vill jag även radera ID=236 ska inte ID=237 raderas eftersom meddelande redan kommit fram och lästs.
Dim alsmID1, SQL1
alsmID1 = split(request.form("IsmID"), ", ")
for i=0 to UBound(alsmID1)
SQL1 = "DELETE FROM ism WHERE IsmID="& alsmID(1) & " AND sender="&request.form("sender")
Set RS1 = con.execute(SQL1)
(delar kommer från en tidigare tråd på wF)
Vore mycket, mycket tacksam om någon kunde hjälpa mig en bit iallafall
LarsGMedlem sedan dec. 200012 464 inlägg sql1 = "delete from ism where (IsmID="& alsmID(1) &_
" AND sender="&request.form("sender") & _
") or (original = " & alsmID(1) & _
" and showed = '0000-00-00 00:00:00') "
tack, men får 0x800A000D "inkompatibla typer. Det går inte ens med response.wrte SQL1. Felet kommer då med
LarsGMedlem sedan dec. 200012 464 inlägg Hmm
Kan du visa lite mer kod markera vilken rad som orsakar felet?
Hur är alsmid definierad?
allt jag skrivit om alsmid står i första meddeladet. felet pekar på din SQL-rad.
det fungerar med min inledande kod att radera flera poster. problemet kommer när man vill radera även de som är skickade men ännu inte lästa
LarsGMedlem sedan dec. 200012 464 inlägg Borde det inte stå almsid(i) istället?
ja, såklart ska det vara så. Det ville sig inte iallafall. Samma fel.
Dim alsmID1, SQL1
alsmID1 = Split(request.form("IsmID"), ",")
for i=0 to UBound(alsmID1)
SQL1="DELETE FROM ism WHERE (IsmID="& alsmID(i) & " AND sender="&request.form("sender") & ") or (original = " & alsmID(i) & " and showed = '0000-00-00 00:00:00') "
Set rs1 = con.execute(SQL1)
next
showed är ett datumfält som ska vara tomt...
0000-00-00 00:00:00 är inputmasken
LarsGMedlem sedan dec. 200012 464 inlägg Får du samma fel (0x800A000D "inkompatibla typer)?
Om du med tomt menar null så skall du använda
sql1 = "delete from ism where (IsmID="& alsmID(i) &_
" AND sender="&request.form("sender") & _
") or (original = " & alsmID(i) & _
" and showed is null) "
connect.execute sql1,,128
Det behövs inget recordset när du gör execute.
ska det vara ,,128?
Om det ska vara så, så blev det ingen skillnad. Börjar ge upp nu. Får designa om tabellen i databasen och lösadet på annat sätt. *suck*