Datensatz via Checkbox löschen

anopheles1337

Mitglied
Hallo,
ich bin gerade dabei ein php-Zeilen löscher zu bauen, scheitere aber daran.
Soweit bin ich bisher gekommen, tut sich aber nix!

PHP:
echo '<form action="';
echo $_SERVER['PHP_SELF'];
echo '">';
echo '<p><input type="checkbox" name="del" value="'.$row['id'].'">';
echo "</td>";

Hier bekommt die Checkbox einen Wert zu gewiesen.
(Ist alles als Tabelle aufgebaut)

PHP:
$auswahl = $_POST['name'];
echo $auswahl;

if(!empty($auswahl))
        {
        mysql_connect('localhost','root','');
    mysql_select_db("objects");
    mysql_query("DELETE FROM info WHERE id = '$auswahl' LIMIT 1");

        $num=mysql_affected_rows();
                          
    if($num>0)
        echo "<br><br>$num Datenbankeintrag wurde erfolgreich gelöscht!";
                          
       else
    {
      echo"<br><br>Es wurde kein Eintrag hinzugefügt, da ein Fehler aufgetreten ist";
      $error = mysql_error();
      echo "<br>";
      echo $error;
      }
    }

und hier der andere Kram!
Ich bekomm leider nichts aus der $_POST['name'] raus, um irgendwas zu löschen!
Könnte einer mir bitte helfen!
 
Probier mal Folgendes:
PHP:
<?php

	mysql_connect('localhost', 'root', '');
	mysql_select_db('objects');


	if( !empty($_POST['del']) ) {
		$query = '
			DELETE FROM
			        `info`
			  WHERE
			        `id` IN ('.implode(', ', array_map('intval', $_POST['del'])).')
			';
		mysql_query($query);
		echo mysql_affected_rows().' Datensatz/Datensätze wurden gelöscht!';
    }  

	…

	$query = '
		SELECT
		        `id`
		  FROM
		        `info`
		';
	$result = mysql_query($query);
	echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">';
	echo '<table>';
	while( $row = mysql_fetch_array($result, MYSQL_ASSOC) ) {
		echo '<tr><td><input type="checkbox" name="del[]" value="'.$row['id'].'"></td></tr>';
	}
	echo '</table>';

?>
 
Gut, danke! Mit dem löschen hat es geholfen!

Habe leider Probleme, deinen Code in meinen zu implementieren!

fehler8lx.jpg


So siehts aus!

PHP:
// Andere Tabellenkram!
echo "<td>";
echo '<a href = "pictures/'.$row['pic'].'"><img src = "pictures/thumbnails/'.$row['pic'].'" hight = "60" width = "60">';
echo "</td>";
    //…

    $query = '
        SELECT
                `id`
          FROM
                `info`
        ';
    $result = mysql_query($query);
    echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">';
    while( $row = mysql_fetch_array($result, MYSQL_ASSOC) ) {
        echo '<td><input type="checkbox" name="del[]" value="'.$row['id'].'"></td>';
}
  
mysql_connect('localhost', 'root', '');
mysql_select_db('objects');

if( !empty($_POST['del']) ) {
        $query = '
            DELETE FROM
                    `info`
              WHERE
                    `id` IN ('.implode(', ', array_map('intval', $_POST['del'])).')
            ';
        mysql_query($query);
        echo mysql_affected_rows().' Datensatz/Datensätze wurden gelöscht!';
}  
}

echo "</table>";


echo '<input type="submit" name="loeschen" value="Löschen">';
echo '<input type="reset" value="Auswahl aufheben" />';
echo '</form>';

?>

Wenn ich einfach die while Scheife rausneheme habe ich eine checkbox pro zeile, leider gehört aber diese nicht zu dem jeweiligen eintrag der datenbank!
 
Zuletzt bearbeitet:
Eigentlich war mein Vorschlag Teil des „anderen Tabellenkrams“. Und auch der zusätzliche Verbindungsaufbau ist nicht nötig.
 
Sollte eigentlich keinen Unterschied machen, ob der Eintrag oben oder unten in der Tabelle steht. Ich bin jetzt soweit gekommen, dass ich rausgefunden hab, dass immer der letzte Eintrag in der Datenbank gelöscht wird, dass heißt, irgendwo bei der Werteverteilung ist was nicht in Ordnung, oder der Array wird nicht richtig ausgelesen!

Hier nochmals der vollstendige Code!
PHP:
<?
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("objects") or die(mysql_error());

$result_info = mysql_query("SELECT * FROM info")
or die(mysql_error());


echo "<table border='1'>";
echo "<tr> <th>ID</th> <th>Titel</th> <th>Artist</th> <th>Preis</th> <th>Größe</th> <th>Kategorie</th> <th>Vorschau</th> <th> </th> </tr>";
while($row = mysql_fetch_array( $result_info )) {
echo "<tr><td>";
echo $row['id'];
echo "</td><td>";
echo $row['titel'];
echo "<td>";
echo $row['artist'];
echo "</td>";
echo "<td>";
echo $row['price'];
echo "</td>";
echo "<td>";
echo $row['size'];
echo "</td>";
echo "<td>";
$var = $row['catid'];
$result = mysql_query("SELECT * FROM cat  WHERE(`id` = $var )");

while ($cat = mysql_fetch_array($result ) ) {
    echo $cat['catname'];
}

echo "<td>";
echo '<a href = "pictures/'.$row['pic'].'"><img src = "pictures/thumbnails/'.$row['pic'].'" hight = "50" width = "100">';
echo "</td>";

$query = 'SELECT `id` FROM `info`';
$result = mysql_query($query);
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">';
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo '<td><input type="checkbox" name="del[]" value="'.$row['id'].'"></td>';


}

if( !empty($_POST['del']) ) {
        $query = 'DELETE FROM `info` WHERE `id` IN ('.implode(', ', array_map('intval', $_POST['del'])).')';
        echo $query.'<br>';
        mysql_query($query);
        echo mysql_affected_rows().' Datensatz/Datensätze wurden gelöscht mit der/den IDs ' .implode(', ', array_map('intval', $_POST['del']));
}  
echo "</table>";
echo '<input type="submit" name="loeschen" value="Löschen">';
echo '<input type="reset" value="Reset" />';
echo '</form>';
?>

Ich hoffe, dass mir jemand helfen kann!
 
Mein Vorschlag:
PHP:
<?php

	mysql_connect('localhost', 'root', '')
		or die(mysql_error());
	mysql_select_db('objects')
		or die(mysql_error());


	if( !empty($_POST['del']) ) {
		$query = '
			DELETE FROM
			        `info`
			  WHERE
			        `id` IN ('.implode(', ', array_map('intval', $_POST['del'])).')
			';
		mysql_query($query)
			or die(mysql_error());
		echo mysql_affected_rows().' Datensatz/Datensätze wurden gelöscht mit der/den IDs ' .implode(', ', array_map('intval', $_POST['del']));
	} 


	$query = '
		SELECT
		        `info`.`id`,
		        `info`.`title`,
		        `info`.`artist`,
		        `info`.`price`,
		        `info`.`size`,
		        `info`.`pic`,
		        `cat`.`catname`
		  FROM
		        `info`,
		        `cat`
		  WHERE
		        `cat`.`id` = `info`.`catid`
		';
	$result = mysql_query($query)
		or die(mysql_error());

	echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">';
	echo '<table>';
	echo '<tr><th>ID</th><th>Titel</th><th>Artist</th><th>Preis</th><th>Größe</th><th>Kategorie</th><th>Vorschau</th><th></th></tr>';
	while( $row = mysql_fetch_array($result) ) {
		echo '<tr>';
		echo '<td>'.$row['id'].'</td>';
		echo '<td>'.$row['titel'].'</td>';
		echo '<td>'.$row['artist'].'</td>';
		echo '<td>'.$row['price'].'</td>';
		echo '<td>'.$row['size'].'</td>';
		echo '<td>'.$row['catid'].'</td>';
		echo '<td><a href="pictures/'.$row['pic'].'"><img src = "pictures/thumbnails/'.$row['pic'].'" height="50" width="100"></td>';
		echo '<td><input type="checkbox" name="del[]" value="'.$row['id'].'"></td>';
	}
	echo '</table>';
	echo '<input type="submit" value="ausgewählte Datensätze löschen">';
	echo '<input type="reset">';
	echo '</form>';

?>
 
Zurück