PHP & MySQL - Private Nachrichten System - Checkboxen

Ich hab mal mein Fehler & dein Fehler ausgebessert :-)

PHP:
       $messageID = $_POST['markMessage'];
       if(isset($messageID)){
            foreach($messageID as $id) {
                mysql_query("DELETE FROM msah_member_post_office_input WHERE messageID = '".$id."' WHERE recipientID = '".$memberID."'");
            }
        }
 
Nochmal zum Verständnis.

HTML
HTML:
<form method="post" action="">
Nachricht X <input type="checkbox" name="message[<?php echo $uid?>]" />
</form>

PHP
PHP:
<?PHP
$msg    = $_POST['message'];
if(is_array($msg))
{
    foreach($msg AS $uid)
    {
        mysql_query("DELETE FROM `message` WHERE `uid`=" . intval($uid));
    }
}
?>

That´s it!

// Edit

Ich empfehle dir btw. vorher ein JS-Confirm auszuführen und eher ein Soft-Delete durchzuführen. Sodass Benutzer die gelöschten evtl. noch 30 Tage lang in einem Archiv anschauen können und danach entgültig gelöscht werden.
 
Zuletzt bearbeitet:
BTW man könnte sich die foreach schleife eigentlich sparen wenn man z.b. das IN statement verwendet oder mit OR verknüpft.

Irgendwie sowas
Delete from table where id in (id1,id2,id3,id4)
oder
Delete from table where id = id1 or id = id2 or...

Bin mir zwar nicht sicher aber ich geh mal davon aus das das schneller geht als x-mal eine query zu senden.
 
Deine Meinung :-)

Begründung?

P.S. Wir reden hier von einem PM-System. Ich bezweifel das hier mehr als 20 Datensätze gleichzeitig gelöscht werden.
 
Zuletzt bearbeitet:
Das ist nicht nur meine "Meinung". Es dauert einfach länger mehrere Abfragen zu machen anstatt 'ne Längere.
Was meinst du wieso JOINs eingeführt wurden? Aus Jux und Tollerei?!

Ja 20 Datensätze mal x User. Lieber gleich richtig, anstatt einen beschissenen Code später umbasteln zu müssen.
 
Also ich habe es gelöst und sorry das ich mich nicht so lange gemeldet habe. Ich hab das immer vor mir her geschoben bis ich es irgendwann vergessen habe. Aber jetzt hab ich's schnell gemacht :)
 
Zurück