Modérateur PHPfrance |
8758 Messages
29 nov. 2011, 18:24
On va faire simple est ce que tu comprend ce que tu fait ?
mysql_fetch_row va te donner un tableau qui est indexé numériquement, donc pas de $row['image']
<?php
$sql1 = "SELECT image
FROM memoire
WHERE image = 1";
$req1 = mysql_query($sql1);
if (!$req1) {
echo "Impossible d'exécuter la requête ($sql1) dans la base : " . mysql_error();
exit;
}
while($data = mysql_fetch_assoc($req1))
unlink($data['image']);
?>
ceci devrait fonctionner.
je pense que tu n'a pas un rapport d'erreur adéquat au développement. Celui ci devrait être E_ALL | E_STRICT (tu peux le voir dans un phpinfo section error_reporting).
poru le modifier, en haut du fichier ajoute : error_reporting(E_ALL_|E_STRICT);
tu devrais ainsi voir tous les messages d'erreurs.
les `sotn inutiles elles permettent de protéger les chaps quand tu utilise un mot réservé (par exemple nommer un champ de table select ou from) ceci étant plus qu'a proscrire a virer
select image from memoire where image=123;
la ça sert a rien de selectionner tu a déja ce que tu veux

(a savoir le 123).
a partir de ta requete delete je dirais simplement
select image from memoire where ID = 123.
test ceci avec phpmyadmin (ou une autre console MySQL).
après suivant la construction de ta table tu n'a peut être pas besoin du while.
si tu a une seule image (ce que je suppose) pour ID = 123 tu n'a pas besoin de while
et utilise file_exists pour être certain que le fichier existe avant de le supprimer.
@+
Il en faut peu pour être heureux ......