Wie kan er mij helpen? Ik moet enkele aanpassingen doen aan een bestaande backoffice die bestaat uit een heleboel sql tabellen.

Studenten kunnen via de bijhorende website online een cv aanmaken. Een tabel slaat alle data (leeftijd, naam, interesse, opleiding) op. Er kunnen ook fotootjes worden upgeload. Allemaal heel logisch.
De admin van de website kan eenvoudig cv s verwijderen uit de database. Dit werkt perfect. Het probleem is dat de afbeeldingen zelf op de server blijven staan. Deze zouden ook verwijderd moeten worden en dit me lukt niet. Ik heb begrepen dat de functie -unlink- gebruikt moet worden, maar ik boek geen succes.

De werkende code voor het vewijderen van cv s:

<php
include("header.php");

if (!isset($_GET['cvid'])){
print("Need $_GET variable");
exit;
}
$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bv_cv"
WHERE id = ".$GET['cvid'].";";
&a_q = mysql_query($a_d) or die(""problem activate_s : ">mysql_error());
header("Location: $ref");

?>

Nog even vermelden dat de betreffende tabel "bc_cv" heet. In deze tabel zit een kolom"uid" met als waarde een cijfer. Dit cijfer is eveneens de naam van de bijhorende gif-afbeelding die opgeslagen zijn in "C:\phpdev\www\BC3\stud\img\cv" Voor alle duidelijkheid: uit deze root moeten de gif-afbeeldingen verwijderd worden.

Kan iemand me helpen?
Waar is de functie unlink() gebleven? Welke foutmelding krijg je?

Tip: probeer eerst eens een scriptje te schrijven dat simpel een bestandje verwijderd. De database gebruik je uitsluitend om de juiste bestandsnaam op te zoeken, heeft dus weinig met het probleem te maken.
Dan zul je dus eerst met een SELECT query dat uid moeten selecteren en vervolgens het bestand uit de map verwijderen.
<?php
$sql = "SELECT ....";
$result = mysql_query($sql);

$row = mysql_fetch_assoc($sql);
$dir = 'map/waarin/bestand/staat'

if(unlink($dir.'/'.$row['uid']))
{
// bestand is verwijderd, nu nog verwijderen uit database.
}
?>
Code ondertussen aangepast met de suggestie. Toch krijg ik nog steeds een foutmelding en gebeurt er niets meer. (ook het verwijderen van de cv zelf niet...)

error = Parse error: parse error in c:\phpdev\www\bc3\admin\cv\del_cv.php on line 15

Dit is de code

<?php
include("header.php");

if(!isset($_GET['cvid'])){
print("Need $_GET variable");
exit;
}

$sql = "SELECT uid FROM bc_cv";
$result = mysql_query($sql);

$row = mysql_fetch_assoc($sql);
$dir = 'C:\phpdev\www\BC3\stud\img\cv'

if(unlink($dir.'/'.$row['uid']))
{
}

$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bc_cv
WHERE id = ".$_GET['cvid'].";";

$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");

?>
en zo?


<?php 
include("header.php");

if(!isset($_GET['cvid'])){
    print("Need $_GET variable");
    exit;
    }

$sql = "SELECT uid FROM bc_cv WHERE cvid = ' ".  $_GET['cvid']. " ' "; //hier een WHERE anders weet je immers niet welke hij moet pakken.
$result = mysql_query($sql) or die(mysql_error());

$row = mysql_fetch_assoc($sql);
$dir = 'C:\phpdev\www\BC3\stud\img\cv';

if(unlink($dir.'/'.$row['uid']))
{
$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bc_cv
        WHERE id = ".$_GET['cvid'].";";
        
$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");
}
?>


Pepijn
Allereerst die SELECT query. Ik zou daar ook nog een WHERE clause in verwachten, anders weet je immers niet welk uid je selecteert.

Vervolgens zul je met php de locatie van het bestand relatief tov van je site root moeten weergeven en niet de locatie op je harde schijf. Daar zal die parse error waarschijnlijk ook wel door veroorzaakt worden.
Code aangepast en nog steeds dezelfde error : parse error in c:\phpdev\www\bc3\admin\cv\del_cv.php on line 15

<?php
include("header.php");

if(!isset($_GET['cvid'])){
print("Need $_GET variable");
exit;
}

$sql = "SELECT uid FROM bc_cv WHERE id = ".$_GET['cvid'].";";
$result = mysql_query($sql);

$row = mysql_fetch_assoc($sql);
$dir = 'url naar de fotomap'

if(unlink($dir.'/'.$row['uid']))
{
$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bc_cv
WHERE id = ".$_GET['cvid'].";";

$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");
}
?>

(alvast bedankt voor jullie hulp)
Volgens mij zit er een fout in je query ( 2 maal )
En moet je de variabele van je directory nog invoeren.

<?php
include("header.php");

if(!isset($_GET['cvid'])){
print("Need $_GET variable");
exit;
}

$sql = "SELECT uid FROM bc_cv WHERE id = ".$_GET['cvid'].""; // ; verwijderd
$result = mysql_query($sql);

$row = mysql_fetch_assoc($sql);
$dir = 'url naar de fotomap'

if(unlink($dir.'/'.$row['uid']))
{
$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bc_cv
WHERE id = ".$_GET['cvid'].""; // ; verwijderd

$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");
}
?>

En krijg je geen duidelijke error, behalve (Parse error..) Oftewel.. geeft ie nog meer info weer?? Zet anders ff dit bovenaan je script:

<?php

// Error reporting Level
error_reporting(E_ALL);

?>

<?php
if(unlink($dir.'/'.$row['uid']))
?>


Zeg, misschien domme vraag, maar heb je $dir wel goed gespecificeerd?
En moet een foto niet eindigen op een extensie?

De queries lijken mij goed, kijk gewoon alleen naar regel 15, en wat daar op gebeurd..
Regel 13 is niet afgesloten met een ;
Aanpassingen zijn gebeurd maar "parse error op lijn 18" blijft verschijnen.
De extensie is niet opgenomen in de database...

<?php

error_reporting(E_ALL); // Error reporting Level

include("header.php");

if(!isset($_GET['cvid'])){
print("Need $_GET variable");
exit;
}

$sql = "SELECT uid FROM bc_cv WHERE id = ".$_GET['cvid'].""; // selecteren uid door cvid op te vragen
$result = mysql_query($sql);

$row = mysql_fetch_assoc($sql);
$dir = 'http://belgiumcampus.co.za/BC3/stud/img/cv/'; // url naar de map waarin de foto's staan

if(unlink($dir.'/'.$row['uid'].)) // verwijderen van fotobestand
{
$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bc_cv
WHERE id = ".$_GET['cvid'].""; // ; verwijderen van cv

$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");
}
?>

Reageren