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
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:
<?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>