Hallo,
ich hab ein Problem mit meinem Skript. Eigentlich ist es keins mehr, allerdings Interessiert mich der Zusammenhang für evtl. spätere Codes mit analogem Problem.
Und zwar hab ich das Skript in zwei Varianten, das eine funktioniert, das andere nur teilweise. Das mir nicht erschließende Problem ist, das ich nur zwei Schleifen vertauscht hab.
Der funktionierende Code:
Der NICHT funktionierende Code:
Die "data.php" beinhaltet den Verbindungsaufbau zu DB usw.
Zur Aufgabe des Skriptes:
Es wird ein, wie sicher schon bemerkt, File-Lösch-Formular ausgewertet.
Checkboxen für die gewünschten Bilder werden gewählt und auf den "Delete"-Button gedrückt.
Die checkboxen haben den name="del[]" und die values der jeweiligen Bild-ID in der DB.
Nun klappt es zwar zuerst das File mithilfe von unlink und dann den dazugehörigen MySQL-Datensatz zu löschen, aber nicht anders herum. Warum?
Ich hoffe ich habe mich nicht zu umständlich ausgedrückt.
MfG RonZ
ich hab ein Problem mit meinem Skript. Eigentlich ist es keins mehr, allerdings Interessiert mich der Zusammenhang für evtl. spätere Codes mit analogem Problem.
Und zwar hab ich das Skript in zwei Varianten, das eine funktioniert, das andere nur teilweise. Das mir nicht erschließende Problem ist, das ich nur zwei Schleifen vertauscht hab.
Der funktionierende Code:
PHP:
if($submit_del == "Delete")
{
include("data.php");
mysql_select_db('carbodoc',$conn);
#Dazugehöriges Bild löschen
for($j=0;$j<count($del);$j++)
{
$picdel_query = "SELECT * FROM tblbilder ";
$picdel_query .= "WHERE ID=".$del[$j]." ";
$picdel_res = mysql_query($picdel_query,$conn);
$cell = mysql_fetch_array($picdel_res, MYSQL_ASSOC);
@unlink($directory.$cell[bname]);
}
$del_query = "DELETE FROM tblbilder WHERE ID=$del[0] ";
for($i=1;$i<count($del);$i++)
{
$del_query .= " OR ID=$del[$i]";
}
mysql_query($del_query,$conn);
echo "Drop-Vorgang ausgeführt";
}
Der NICHT funktionierende Code:
PHP:
if($submit_del == "Delete")
{
include("data.php");
mysql_select_db('carbodoc',$conn);
$del_query = "DELETE FROM tblbilder WHERE ID=$del[0] ";
for($i=1;$i<count($del);$i++)
{
$del_query .= " OR ID=$del[$i]";
}
mysql_query($del_query,$conn);
#Dazugehöriges Bild löschen
for($j=0;$j<count($del);$j++)
{
$picdel_query = "SELECT * FROM tblbilder ";
$picdel_query .= "WHERE ID=".$del[$j]." ";
$picdel_res = mysql_query($picdel_query,$conn);
$cell = mysql_fetch_array($picdel_res, MYSQL_ASSOC);
@unlink($directory.$cell[bname]);
}
echo "Drop-Vorgang ausgeführt";
}
Die "data.php" beinhaltet den Verbindungsaufbau zu DB usw.
Zur Aufgabe des Skriptes:
Es wird ein, wie sicher schon bemerkt, File-Lösch-Formular ausgewertet.
Checkboxen für die gewünschten Bilder werden gewählt und auf den "Delete"-Button gedrückt.
Die checkboxen haben den name="del[]" und die values der jeweiligen Bild-ID in der DB.
Nun klappt es zwar zuerst das File mithilfe von unlink und dann den dazugehörigen MySQL-Datensatz zu löschen, aber nicht anders herum. Warum?
Ich hoffe ich habe mich nicht zu umständlich ausgedrückt.
MfG RonZ