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.
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);
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
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.
$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