ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
172
172
EMPFEHLEN
-
Guten Tag!
Ich habe ein deletescript gebastelt, dass auf meine Datenbank zugreift und den entsprechenden Datensatz löscht. Welcher Datensatz gelöscht werden soll, kann man durch eine Option Box entscheiden die jeweils das DB-Feld "name" ausgebiebt.
d.h. ich habe z.B 2 Datensatze iin meiner DB wobei der 1. Datensatz durch name "Beispiel1" und der zweite durch "Beispiel2" beschrieben ist.
Dies klappt auch wunderbar, nun kommt der schwere Teil:
In meiner DB sind natürlich mehr Felder zu jedem Datensatz, unter anderem auch das Feld: "download" in dem der dateiname + suffix steht. z.b. für den ersten Datensatz test.txt und für den zweiten beispiel.zip.
Ich möchte gerne, dass wenn man einen Datensatz löscht, dass auch die entspürechende Datei die im Datensatz unter Download angegeben ist, gelöscht wird.
In dem unten stehendem Script habe ich die stelle, in der ich das unlink-script eingefügt habe, markiert.
Jedoch weiß ich nicht, wie ich die variable Download aus dem entsprechenden Datensatz dort einlese, da ich ja bei der optbox nur die "namen" anzeigen lasse.
Hat jemand eine Idee?
Danke und Gruss
Johanni
PHP-Code:<?php
include("include.php");
doDB();
if (!$_POST) {
//haven't seen the selection form, so show it
$display_block = "<h1>Select an Entry</h1>";
//get parts of records
$get_list_sql = "SELECT id,
CONCAT_WS(', ', name) AS display_name
FROM alben ORDER BY name";
$get_list_res = mysqli_query($mysqli, $get_list_sql) or die(mysqli_error($mysqli));
if (mysqli_num_rows($get_list_res) < 1) {
//no records
$display_block .= "<p><em>Keine Datensätze zum löschen vorhanden!</em></p>";
} else {
//has records, so get results and print in a form
$display_block .= "
<form method=\"post\" action=\"".$_SERVER["PHP_SELF"]."\">
<p><strong>Wähle einen Datensatz:</strong><br/>
<select name=\"sel_id\">
<option value=\"\">-- Wähle --</option>";
while ($recs = mysqli_fetch_array($get_list_res)) {
$id = $recs['id'];
$display_name = stripslashes($recs['display_name']);
$display_block .= "<option value=\"".$id."\">".$display_name."</option>";
}
$display_block .= "
</select>
<p><input type=\"submit\" name=\"submit\" value=\"löschen\"></p>
</form>";
}
//free result
mysqli_free_result($get_list_res);
} else if ($_POST) {
//check for required fields
if ($_POST["sel_id"] == "") {
header("Location: delentry.php");
exit;
}
// delete function -> this is what it is about
$del_file = ($_POST['sel_id']);
unlink($del_file);
// end delete function
//issue queries
$del_master_sql = "DELETE FROM alben WHERE id = '".$_POST["sel_id"]."'";
$del_master_res = mysqli_query($mysqli, $del_master_sql) or die(mysqli_error($mysqli));
$display_block = "<h1>Datensatz gelöscht</h1>
<p>Einen weiteren Datensatz
<a href=\"".$_SERVER["PHP_SELF"]."\">löschen</a>?</p>";
}
?>
<html>
<head>
<title>My Records</title>
</head>
<body>
<?php echo $display_block; ?>
</body>
</html>
-
Achso, sollte vielleicht noch sagen, dass ich momentan "Sel_id" eingegeben habe, dass würde jedoch den wert des feldes "namen" löschen, aber das ist ja nun keine datei.
-
Hi
Hab ich dich richtig verstanden? Du willst kaskadierend löschen?
Falls ja:
Wenn du deine Foreign keys richtig gesetzt hast, kannst du das DBMS die Arbeit übernehmen lassen: http://dev.mysql.com/doc/refman/5.0/...nstraints.htmlGrüße Nico
----------------------
Xing
----------------------
Zitat von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
Ähnliche Themen
-
Hibernate Delete Problem
Von alaska94 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 2Letzter Beitrag: 14.09.09, 16:14 -
Pn-script... Problem mit DELETE/UPDATE...
Von Tobbes im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 01.07.06, 01:28 -
DELETE Problem
Von tschimo im Forum PHPAntworten: 10Letzter Beitrag: 25.11.05, 12:58 -
Upload script mit delete Button?
Von pamax im Forum PHPAntworten: 1Letzter Beitrag: 12.06.05, 17:24 -
Löschen einer MySQL Datensatzes über delete.php (externes Script)
Von NoGi im Forum PHPAntworten: 6Letzter Beitrag: 21.03.03, 23:24





Zitieren

Login





