Daten per Klick löschen...

SonMiko

Erfahrenes Mitglied
Hallo zusannen,

ich hab ein kleines Problem.
Ich lese eine Tabelle aus, gebe die Daten in einer Tabelle untereinander mit einer Schleife wieder aus und immer rechts ein kleines Icon. Jetzt möchte ich aber das wenn man auf das Icon klickt, der zugehörige Datensatz gelöscht wird.
Wie kann ich das machen?
Man kann zum löschen bzw. eindeutigen identifizieren den Punkt "id" verwenden - soweit bin ich schon. Vielleicht fragt das Dokument beim öffnen ab ob es eine GET Variable (id) gibt und bei Verfügbarkeit, diese dann direkt in den Befehl des löschens einbaut Ist diese Möglichkeit effizient
 

Anhänge

  • beispiel.JPG
    beispiel.JPG
    14,2 KB · Aufrufe: 68
wen du die id in der adressleiste übergibst:
PHP:
<a href="delete.php?id=<?php echo $_GET['id']; ?>" ><img src="image.png" alt="Löschen" title="Löschen" /></a>
 
Hi ich bastle auch grad an so etwas und löse es genau so wie du gedacht hast.
ein kleiner auszug aus meiner schleife:
PHP:
$deleteimg ='<a href="'.$this ->url.'&action=del&id='.$orderList[$i] ->return_id().'" title="löschen" onClick="return confirm(\'Wollen sie die Bestellung wirklich löschen?\')"><img src="pix/icons/16x16/delete.gif" border="0"></a>';
funktioniert wunderbar - das script sollte halt entsprechend abgesichert sein

als Alternativ ist mir noch eingefallen ein Formular um die gesaamte Tabelle zu spannen, ans Ende jeder Zeile einen Submitbutton der immer den selben namen trägt (type image) und als value des buttons die entsprechende id einzusetzen - die GET Variante find ich persönlich schöner

mit http request von javascript ginge es natürlich auch, aber mein Kunde zahlt den aufwand dafür nicht ;)
 
Hmm,
richtig klappen will es aber nicht...

PHP:
//Verbindung zur Datenbank
mysql_connect($host, $username, $password);

//Datenbankauswahl
mysql_select_db($database);

//Tabellenauswahl
$sql="Select * from ".$table."";

//Abfrage
$result=mysql_query($sql);

//Daten löschen?
$row=mysql_fetch_assoc($result);
if(isset($_GET[$row])){
mysql_query("Delete from ".$table." Where ".$table." id=".$_GET[$row]."");
}

Der Link funktioniert allerdings, die ID wird oben an die URL geheftet, den Link erzeuge ich aber weiter unten im Dokument...

Das Problem muss irgendwie mit dem oberen Code zu tun haben...
 
Zuletzt bearbeitet:
Ne leider nicht...
Kein Erfolg...

Es passiert beim klicken einfach garnichts... was mach ich falsch?
 
Here u are..

PHP:
<?php
include("variablen.inc");

//Verbindung zur Datenbank
mysql_connect($host, $username, $password);

//Datenbankauswahl
mysql_select_db($database);

//Tabellenauswahl
$sql="Select * from ".$table."";

//Abfrage
$result=mysql_query($sql);
$row=mysql_fetch_assoc($result);

//Daten löschen?
if(isset($_GET['$row'])){
mysql_query("DELETE FROM ".$table." WHERE  id=".$_GET[$row]."");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Adminbereich</title>
<link href="../../_css/css.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div align="center">
  <table width="500" border="0" cellspacing="0" cellpadding="0">
    <tr bgcolor="#CCCCCC">
      <td colspan="5"><div align="center">Members</div></td>
    </tr>
    <tr>
      <td><div align="center">ID</div></td>
      <td><div align="center">Username</div></td>
      <td><div align="center">Passwort</div></td>
      <td><div align="center">Email Adresse </div></td>
      <td><div align="center">L&ouml;schen</div></td>
    </tr>
	<?php
	while($row=mysql_fetch_assoc($result)){
	echo "<tr>
	<td>$row[id]</td>
      <td>$row[user]</td>
      <td>$row[pass]</td>
      <td>$row[email]</td>
      <td><div align=center><a href=members.php?$row[id]><img src=icons/trash.gif width=32 height=32 border=0 /></a></div></td>
    </tr>";
	}
	?>
  </table>
  </div>
</body>
</html>
 
Du musst der GET-Variable ja auch einen Namen geben... also z.B.
HTML:
<a href="script.php?id=1">Link</a>

Also:
PHP:
<?php
include("variablen.inc");

//Verbindung zur Datenbank
mysql_connect($host, $username, $password);

//Datenbankauswahl
mysql_select_db($database);

//Tabellenauswahl
$sql="Select * from ".$table."";

//Abfrage
$result=mysql_query($sql);
$row=mysql_fetch_assoc($result);

//Daten löschen?
if(isset($_GET['id'])){
/* intval und abs sorgen dafür, dass die Zahl eine positive Ganzzahl wird */
mysql_query("DELETE FROM ".$table." WHERE  id=" . intval(abs($_GET['id'])));
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Adminbereich</title>
<link href="../../_css/css.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div align="center">
  <table width="500" border="0" cellspacing="0" cellpadding="0">
    <tr bgcolor="#CCCCCC">
      <td colspan="5"><div align="center">Members</div></td>
    </tr>
    <tr>
      <td><div align="center">ID</div></td>
      <td><div align="center">Username</div></td>
      <td><div align="center">Passwort</div></td>
      <td><div align="center">Email Adresse </div></td>
      <td><div align="center">L&ouml;schen</div></td>
    </tr>
    <?php
    while($row=mysql_fetch_assoc($result)){
    echo "<tr>
    <td>" . $row['id'] . "</td>
      <td>" . $row['user'] . "</td>
      <td>" . $row['pass'] . "</td>
      <td>" . $row['email'] . "</td>
      <td><div align=center><a href=\"members.php?id=" . $row['id'] . "\"><img src=icons/trash.gif width=32 height=32 border=0 /></a></div></td>
    </tr>";
    }
    ?>
  </table>
  </div>
</body>
</html>
 
Zurück