delete-leeren datensatz

Jeder Datensatz der leer mittels post übergeben wurde, (vorher stand was drin) soll gelöscht werden, aber ich glaube so ganz richtig ist das hier nicht.

PHP:
if (isset($_POST['vorname'])==NULL) 
{
foreach ($_POST['vorname'] as $ID => $name) 
{
$sql = "DELETE FROM `person` WHERE `ID_Name` = " . (int) $ID . ";";
mysql_query($sql) OR die(mysql_error());
}
}
 
geht nicht. Das ist schon richtig so.

wenn jemand namen ändert und einen namen löschen will, (textfeld) dann lässt er das feld einfach leer, dann wird es gelöscht nachdem er auf den button klickt.

also kommt bei der abfrage ein leerer datensatz an, aber der soll nicht erst eingetragen werden, sondern gleich gelöscht.deswegen

PHP:
if (isset($_POST['vorname'])) 
		{
	    	foreach ($_POST['vorname'] as $ID => $name) 
			{
	        	$sql = "UPDATE `person`
	                SET `Name` = '" . mysql_real_escape_string($name) . "' WHERE `ID_Name` = " . (int) $ID . ";" OR "DELETE FROM `person` WHERE `Name` = " . mysql_real_escape_string($name) == NULL . ";";
	       		mysql_query($sql) OR die(mysql_error());
	    	}
		}
bringt mich leider auch nichtweiter
 
PHP:
if( isset($_POST['vorname']) ) {
	foreach( $_POST['vorname'] as $ID => $name ) {
		if( $name == '' ) {
			$sql = 'DELETE FROM `person` WHERE `ID_Name` = '.(id)$ID;
		} else {
			$sql = 'UPDATE `person` SET `Name` = "'.mysql_real_escape_string($name).'" WHERE `ID_Name` = '.(int)$ID;
		}
		mysql_query($sql) OR die(mysql_error());
	}
}
 
Könnte es sein das
PHP:
$sql = 'DELETE FROM `person` WHERE `ID_Name` = '.(id)$ID;
eher
PHP:
$sql = 'DELETE FROM `person` WHERE `ID_Name` = '.(int)$ID;
ist, denn dann funktionierts.
 
Zurück