php // MySQL Delete

sempai0815

sempai0815

Aktives Mitglied
Thread Starter
Dabei seit
22.12.2008
Beiträge
178
Reaktionspunkte
2
Hallo liebe Entwickler,

werde hier gleich verrückt, muss vorab sagen, bin eigentlich nicht der beste Coder, mache das nur just4fun :)

und zwar geht es um folgendes, habe eine Datenbank mit inhalt (id, name, vorname, email, city). Ausgabe des inhaltes, no problem. Jetzt möchte ich allerdings hinter jede ausgabe ein "X-Icon" machen und sobald ich drauf klicke soll dieser Datensatz gelöscht werden ... ABER WIE????

Habe ich mich halbwegs verständlich ausgedrückt? Hoffe doch sehr :)

mysql.png
 
Hallo liebe Entwickler,

werde hier gleich verrückt, muss vorab sagen, bin eigentlich nicht der beste Coder, mache das nur just4fun :)

und zwar geht es um folgendes, habe eine Datenbank mit inhalt (id, name, vorname, email, city). Ausgabe des inhaltes, no problem. Jetzt möchte ich allerdings hinter jede ausgabe ein "X-Icon" machen und sobald ich drauf klicke soll dieser Datensatz gelöscht werden ... ABER WIE????

Habe ich mich halbwegs verständlich ausgedrückt? Hoffe doch sehr :)

mysql.png

dazu musst du hinten mit einem html tag das x hingeben und das auf eine delete seite verlinken. die delete-seite enthält dann den code zum löschen

Code:
mysql_query('DELETE FROM tabelle WHERE id = $_GET["id"]');

und leitet dann, wenn du das so programmierst, wieder auf die tabelle weiter.

HTML:
<a href="delete.php?id=<?php echo $id; ?><img src="x-icon.gif" /></a>

wobei $id natürlich die id sein muss, die der mysql datensatz hat
 
Ein Scheunentor für Attacken gegen die Datenbank…

dann speichert ers halt in eine session oder er hat passwortschutz eingebaut.
davon abgesehen, dass es ihn anscheinend eh nicht mehr interessiert...
 
doch natürlich interese ich mich noch dafür :)

<?php

$con = mysql_connect("localhost","USER","PW");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("DATENBANK", $con);

$result = mysql_query("SELECT * FROM TABELLE");


echo "<table border='1'>
<tr>
<th>ID</th>
<th>&nbsp;</th>
<th>Anrede</th>
<th>&nbsp;</th>
<th>Name</th>
<th>&nbsp;</th>
<th>Vorname</th>
<th>&nbsp;</th>
<th>Verein</th>
<th>&nbsp;</th>
<th>Stadt</th>
<th>&nbsp;</th>
<th>E-Mail</th>
</tr>";

while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>&nbsp;</td>";
echo "<td>" . $row['anrede'] . "</td>";
echo "<td>&nbsp;</td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>&nbsp;</td>";
echo "<td>" . $row['vorname'] . "</td>";
echo "<td>&nbsp;</td>";
echo "<td>" . $row['verein'] . "</td>";
echo "<td>&nbsp;</td>";
echo "<td>" . $row['city'] . "</td>";
echo "<td>&nbsp;</td>";
echo "<td><a href='mailto:".$row['email']."'>".$row['email']."</a></td>";
echo "<td>&nbsp;</td>";
######## Hier möchte ich jetzt gerne ein Delete link reinbauen ########
echo "<td>&nbsp;</td>";
echo "</tr>";
}
echo "</table>";


mysql_close($con);
?>

wie muss das aussehen das ich quasi nur noch drauf klicken muss und das er dann automatisch die zeile raus löscht in der das delete steht?


tausend dank!
 
doch natürlich interese ich mich noch dafür :)
tausend dank!

das geht so einfach leider nicht. du musst da an der stelle einen link zu einer delete.php einbinden. auf der wird dann (wie beschrieben) der delete befehl ausgeführt.

und mit header("Location: seite-die-alles-anzeigt.php"); leitest du dann von der delete.php wieder auf die seite um, die alles anzeigt, also die tabelle.
 
okay, kannst du mir das schreiben wie das genau zu funzen hat? bin echt nicht der große coder :-( bin admin, hey :)
 
hab ich doch in dem beitrag dort oben
 
ja habe ich auch genauso gemacht aber er löscht es nicht ...

wenn ich die id direkt eintrag, kein problem, nimmt er raus, aber mit deinem "Platzhalter" leider nicht :-(


meine delete_id.php sieht so aus

<?php

$con = mysql_connect("localhost","USER","PASS");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("DB", $con);


$query = mysql_query('DELETE FROM $tabelle WHERE id = $GET["id"]');
mysql_query($query);
echo "Record Deleted";
mysql_close($con);

?>

und so sieht die datei aus die die tabelle ausgibt

while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>&nbsp;</td>";
echo "<td>" . $row['anrede'] . "</td>";
echo "<td>&nbsp;</td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>&nbsp;</td>";
echo "<td>" . $row['vorname'] . "</td>";
echo "<td>&nbsp;</td>";
echo "<td>" . $row['verein'] . "</td>";
echo "<td>&nbsp;</td>";
echo "<td>" . $row['city'] . "</td>";
echo "<td>&nbsp;</td>";
echo "<td><a href='mailto:".$row['email']."'>".$row['email']."</a></td>";
echo "<td>&nbsp;</td>";
echo "<td><a href='delete_id.php?id=".$row['id']."'> <img src='pixel.gif' border='0' width='30' height='1'><img src='x_button.gif' border='0' align='middle'></a></td>";
echo "</tr>";
}
echo "</table>";

mysql_close($con);


Aber wenn ich die id angebe dann löscht er den datensatz ....

d.h. das ich die ID nicht poste?!?!?!?!?!
 
Zuletzt bearbeitet:
Wie sieht denn so ein Link auf die delete_id.php überhaupt aus hinterher?
Einfach mal im Firefox oder so drüberfahren mit der Maus und gucken was unten in der Statusleiste steht. Wenn da die ID drinsteht, passt das schonmal.

Btw.: Wo wird überhaupt $tabelle definiert?
 
$query = mysql_query('DELETE FROM $tabelle WHERE id = $GET["id"]');
mysql_query($query);

das mysql_query($query); is überflüssig

es könnte auch so aussehen müssen:

mysql_query('DELETE FROM $tabelle WHERE id = '.$GET["id"]);

ahja und mit $tabelle meinte ich die tabelle deiner datenbank
 
haut leider auch nicht hin ...

mann oh mann, kurz vorm durch drehen hier ...
 
man schreibt $_GET['id']

die underline _ fehlt...
 
stimmt. das hätte ich aber in meinem ersten post so geschrieben gehabt!
 
haut leider auch nicht hin ...

mann oh mann, kurz vorm durch drehen hier ...

Schreib doch erstmal ein Script wo das löschen durch eine statische Query drin ist um zu sehen, das es überhaupt funktionniert und ersetze dann den statischen Teil durch variablen.

So schwer ist das ja alles nicht.

Code:
<?php
mysql_connect("localhost", "mysql_user", "mysql_password")
    or die("Keine Verbindung möglich: " . mysql_error());

mysql_select_db("mydb");

$result = mysql_query("DELETE FROM meine_tabelle WHERE meine_id = 1");

if(mysql_affected_rows() > 0){
  echo "Juchhu, ich habe etwas gelöscht.";
}
?>
 
Wie sieht denn deine MySQL Tabelle aus? Hast du überhaupt ein Feld welches ID heisst?
 
habe doch bei seiten gepostet .... kann ich aber gerne nochmal machen wenn ihr mir dann helfen könnte :)

meine delete_id.php sieht so aus

<?php

$con = mysql_connect("localhost","USER","PASS") ;
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("DB", $con);


$query = mysql_query('DELETE FROM $tabelle WHERE id = $_GET["id"]');
mysql_query($query);
echo "Record Deleted";
mysql_close($con);

?>


und so sieht die datei aus die die tabelle ausgibt

while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>&nbsp;</td>";
echo "<td>" . $row['anrede'] . "</td>";
echo "<td>&nbsp;</td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>&nbsp;</td>";
echo "<td>" . $row['vorname'] . "</td>";
echo "<td>&nbsp;</td>";
echo "<td>" . $row['verein'] . "</td>";
echo "<td>&nbsp;</td>";
echo "<td>" . $row['city'] . "</td>";
echo "<td>&nbsp;</td>";
echo "<td><a href='mailto:".$row['email']."'>".$row['email']."</a></td>";
echo "<td>&nbsp;</td>";
echo "<td><a href='delete_id.php?id=".$row['id']."'> <img src='pixel.gif' border='0' width='30' height='1'><img src='x_button.gif' border='0' align='middle'></a></td>";
echo "</tr>";
}
echo "</table>";

mysql_close($con);
 
die Lösung steht in meinem Post #14
 
Zurück
Oben Unten