for Schleife beenden

Ok, sry wegen dem Hickhack.

Also, die if-Anweisung mit dem header soll greifen, wenn eins oder mehrere der Array-Elemente keinen Datensatz finden lassen.


Hiermit werd ich jetzt immer rausgeschmissen, egal ob gültig oder nicht:

PHP:
if (intval($delcheck)) {
    foreach ($delcheck as $delid) {
    $sqldelmsg = "UPDATE message  SET f1='1' WHERE empfaenger='$id' AND ID='intval($delid)'";
    mysql_query($sqldelmsg);
        if (mysql_affected_rows() == 0) {
        header("Location: $url/index.php");
        }
    }
}
 
Was willst du nu eigentlich, Löschen, Verändern oder Finden?

Davon unabängig, mysql_affected_rows() gibt an wie oft die letzte MySQL-Operation ausgeführt wurde. Und wenn mysql_affected_rows() halt 0 zurück gibt, greift die if-Anweisung. Kann es einfach sein das du ein Fehler in der Abfrage hast?

Nutze mal folgende Zeile um etwaige Fehler auszugeben:

PHP:
mysql_query($sqldelmsg) OR DIE(mysql_error());
 
Zuletzt bearbeitet:
Da ist auch ein Fehler in der Abfrage, versuchs mal mit der:

PHP:
$sqldelmsg = "UPDATE `message` SET `f1` = '1' WHERE `empfaenger` = '$id' AND `ID` ='.intval($delid).'"
 
Ja, lag an Syntax
mau hatte es eigentlich auch schon richtig gepostet:

AND `ID` ='".intval($delid)."'


Jetzt funktionierts auch mit deinem num_affected_rows wunderbar!

Danke
 
Du kannst auch alles in einer Abfrage erledigen:
PHP:
if( !empty($_POST['delmsg']) && is_array($_POST['delmsg']) ) {
	$query = '
		DELETE FROM
		        `message`
		  WHERE
		        `empfaenger` = '.intval($id).'
		    AND `ID` IN ('.implode(', ', array_map('intval', $_POST['delmsg'])).')
		';
	mysql_query($query);
	if( mysql_affected_rows() == 0 ) {
		setcookie('Benutzer', '', 0);
		setcookie('Session', '', 0);
		header('Location: '.$url.'/index.php');
		exit;
	}
}
 
Zurück