Hallo,

Door middel van de functie unlink() probeer ik een foto te verwijderen uit de map waar deze instaat. Het record verwijderen uit de database lukt, maar de foto wordt nog niet verwijderd uit de map. Onderstaand de code. Waar zit de fout?

Alvast bedankt!

[code]
<?php

include_once ('../connect.php');

function foto($id){
//pas opzoeken in database
$check_query_pas = mysql_query("SELECT * FROM foto WHERE id = {$id}");
$get_pas=mysql_fetch_object($check_query_pas);
if ($get_pas->actief=="ja"){
mysql_query("UPDATE foto set actief = 'nee' WHERE id = {$id} ");
}else{
mysql_query("UPDATE foto set actief = 'ja' WHERE id = {$id} ");
}
}

function verwijderfoto($id){
mysql_query("DELETE FROM foto WHERE id = {$id} ");


$query="SELECT * FROM foto WHERE id = {$id}";
$result = mysql_query($query) or die("FOUT : ". mysql_error());

while ($rij=mysql_fetch_array($result)){

unlink($rij['foto']) or die(mysql_error());
}
}

if ($_GET["wijziggeldig"]<>""){
foto($_GET["wijziggeldig"]);
}

if ($_GET["verwijderfoto"]<>""){
verwijderfoto($_GET["verwijderfoto"]);
}
?>

<html>
<head>
<title>Alle foto's</title>
</head>
<body>
<body bgcolor=cccccc>

<?php
$sql = "SELECT * FROM foto";
$out = mysql_query($sql);
$num = mysql_num_rows($out);
$aantal = $num;
?>

<table bgColor=98cb00 border=1 bordercolor=00000>
<tr>
<td bgColor=98cb00 width=100><b>Nummer</b></td>
<td bgColor=98cb00 width=100><b>Foto</b></td>
<td bgColor=98cb00 width=100><b>Actief</b></td>
<td bgColor=98cb00 width=100><b>Verwijder</b></td>
</tr>

<?php

$check_allefotos = mysql_query("SELECT * FROM foto order by id ASC LIMIT 0, 1000");
$nummer = 1;
while ($rij=mysql_fetch_array($check_allefotos)){

echo ("<TR><td bgColor=98cb00 width=100><B><font color=red>$nummer</font></B></td>");
echo (" <td bgColor=98cb00 width=100><a href='../foto/{$rij ['foto']}' target=_blank>Bekijk foto</A></td>");
echo (" <td bgColor=98cb00 width=100><a href=overzichtfoto.php?wijziggeldig=".$rij['id'].">".$rij['actief']."</a></td>");
echo ("<td bgColor=98cb00><center><a href=overzichtfoto.php?verwijderfoto=".$rij['id'].">verwijder</a>");
$nummer++;

}
?>

</table>
</body>
</html>
Beter eerst het unlink deel doen en daarna pas de Delete query! Je verwijderd eerst je record, die je meteen daarna (KAN DUS NIET!) weer op wil zoeken. Hij heeft dus geen bestandsnaam om te verwijderen.

Eeerst selectiequery, daarvan de unlink, en daarna de DELETE query.
Bedankt, Nu werkt het wel.

Reageren