nur 1 Variable gesucht !

code_red

Mitglied
Moinsen Leutz !

Ich hab mich mal wieder drangesetzt und was probiert, aber irgendwie funzt das nicht so wies soll !!! Also das ist soll ein Lösch-script sein wo alle Projekte aufgelistet werden ( funzt ) und mit checkboxen angeklickt werden können ( funzt ). Mein Problem ist jetzt allerdings die Löschbedingung zum Löschen dieser Projekts: Here is the soure:

PHP:
<FORM ACTION="<? echo $PHP_SELF;?>?action=delprojekt" name="proj" METHOD="POST">
<?

$conn_id=mysql_connect($host,$user,$pwd);
mysql_select_db($database,$conn_id);
$query3="select * from $table order by pnr asc";
$result3=mysql_query($query3,$conn_id);
$anzahl=mysql_num_rows($result3);
while ($row3=mysql_fetch_array($result3))
{
$pnr=$row3['pnr'];
$projekt=$row3['projekt'];
echo "<input type=\"checkbox\" name=\"id[]\" value=\"$pnr\">$projekt\n<br>";}
?>

<input type="checkbox" name="checkbox" onclick="alle()">alle aktivieren/deaktivieren

<script language="javascript">
function alle() 
{var frage=window.document.proj.checkbox.checked; 
if(frage==true) 
{for(i=0;i<<? echo $anzahl; ?>;i++) 
{window.document.proj.elements[i].checked=true;}} 
else 
{for(i=0;i<<? echo $anzahl; ?>;i++) 
{window.document.proj.elements[i].checked=false;}}} 
</script>

<INPUT TYPE="submit" VALUE="loeschen">
<?
if ($action==delproj) {
$conn_id=mysql_connect($host,$user,$pwd);
mysql_select_db($database,$conn_id);

mysql_query("DELETE FROM $table WHERE ");
echo "Projekt \" $projekt \" gelöscht!";}
else 
{echo "Fehler!";}; 


?>

Nach dem letzten WHERE weiss ich die variable nicht (angehakte Checkboxen)

PHP:
mysql_query("DELETE FROM $table WHERE checkbox=="checked" ");


mfg code_red
 
Hi code_red,

also zuerst würde ich mal den Code für's Löschen ganz an den Anfang der Datei vorziehen. Warum? So wie's jetzt da steht, werden zuerst die Einträge ausgelesen und dann erst die zu löschenden gelöscht. Dann stehen die Einträge, die eigentlich schon gelöscht wurden, immer noch zur Auswahl. Ich hoffe, das war einigermaßen verständlich ;)

Jetzt zu deinem eigentlichen Problem. Wenn ich das beim ersten Überfliegen deines Codes richtig gesehen hab, hast du dann die pnr's aller zu löschenden Einträge in dem Array $id. Und dieses Array musst du dann lediglich noch durchlaufen:
PHP:
<?
if ($action=="delproj") // "delproj" in " setzen, ist sicherer
{
	$conn_id = mysql_connect($host,$user,$pwd);
	mysql_select_db($database,$conn_id);

	foreach ($id as $pnr)
	{
		mysql_query("DELETE FROM $table WHERE pnr = '$pnr'");
	}

	echo "Projekt(e) gelöscht!";
}
?>
Wenn du nur eine einzige SQL-Abfrage verwenden willst, kannst du das so machen:
PHP:
// anstatt foreach ($id as $pnr) { ... }
$where_clause = "WHERE pnr='";
$where_clause .= implode("' OR pnr='", $id);
$where_clause .= "'";

mysql_query("DELETE FROM $table $where_clause");

HTH :)


reima
 

Neue Beiträge

Zurück