unlink()

Répondre
rock69
le 10/09/2007 à 14:26
rock69
Bonjour,
je n'arrive pas à utiliser la fonction unlink()

include("connexion.php");

function SupprimerPhoto($id) {
$requete = "Select distinct image From news where id=".$id;
$resultat = mysql_query ($requete, $connexion);
$data = mysql_fetch_row ($resultat);
unlink ("../img/".$data['image']);
}

la fonction est appelée via le lien suivant :
news_exe.php?id=$id&action=deletePhoto
et la condition suivante :
if($_GET[action] == "deletePhoto") {
SupprimerPhoto($id);
}
Si quelqu'un peut m'éclairer sur les erreurs ça serait bien sympa…
merci par avance
Fab
Sammuel
le 10/09/2007 à 14:56
Sammuel
pourquoi fais tu un "Select distinct" dans ta requete ?

comme ca ca devrait etre suffisant non ? :p
$requete = "Select image From news where id=".$id;
rock69
le 10/09/2007 à 17:30
rock69
"distinct" : il me semble que c'est pour éviter d'avoir des redondances…
je viens d'essayer sans mais ça ne fonctionne toujours pas… pour info je teste en local
Keika
le 11/09/2007 à 08:58
Keika
essaye de faire un echo sur ta requete.
Me semble que tu t'embrouilles avec les guillemets. je pense que ton $id a la fin n'est pas compte dans ta requete. Et si SQL ne trouve pas d'id, il ne retourne pas d'erreur.

Fait un truc genre:
<?php
$requete = 'SELECT DISTINCT image FROM ta_table WHERE id="'.$id.'" ;' ;
?>
Le PHP --> C'est dur !
rock69
le 11/09/2007 à 13:34
rock69
Salut,
merci de votre aide…
j'ai essayé ainsi :
$requete = 'SELECT DISTINCT image FROM ta_table WHERE id="'.$id.'" ;

mais ça ne fonctionne toujours pas… c'est galère :-(
Keika
le 11/09/2007 à 13:38
Keika
Parceque tu as Copier/Coller !

Change FROM ta_table en FROM news

je ne me souvenais plus du nom de ta table...
Le PHP --> C'est dur !
Sammuel
le 11/09/2007 à 15:34
Sammuel
Pourquoi vous faites un DISTINCT ?

Dans, ton cas, tu souhaites selectionner LA photo correspondant a l'ID XX pour la supprimer.
Tu ne selectionnes qu'une seule photo, non ? donc le distinct ne sers à rien si je ne me trompe pas ^^

Je viens de voir un truc :p

news_exe.php?id=$id&action=deletePhoto
et la condition suivante :

if($_GET[action] == 'deletePhoto') {
SupprimerPhoto($id);
}


Tu fais un $_GET[action] pour sélectionner l'action a faire... mais tu ne récupère pas l'id de la news !!

Donc, il faut également que tu faces un $_GET['id'] pour récupérer l'ID de la news :p

if(isset($_GET['action']) && $_GET['action'] == "deletePhoto") {
$id = (int)$_GET['id'];
SupprimerPhoto($id);
}


Et la fonction :
function SupprimerPhoto($id) {
$requete = "SELECT image FROM news WHERE id = '".$id."'";
$resultat = mysql_query ($requete, $connexion);
$data = mysql_fetch_row ($resultat);
unlink ("../img/".$data['image']);
}
rock69
le 12/09/2007 à 05:43
rock69
Salut,
je cale :-(
j'ai fais exactement comme Sammuel m'explique mais la fonction ne supprime toujours pas l'image…
Keika, je m'étais aperçu du nom de la table, je l'ai modifié mais ça n'a rien changé…
smiley
Keika
le 12/09/2007 à 10:00
Keika
trouve ! sur nexen.net !

Description
array mysql_fetch_row ( resource result )

mysql_fetch_row retourne un tableau indexé numériquement, qui correspond à la prochaine ligne du résultat MySQL result et déplace le pointeur interne de données d'un cran.

En clair la ton $data est un tableau avec des indices numeriques et pas alphanumerique. Toi qui l'interpretes comme un mysql_fetch_array.

Si tu veux trouver ton infos essaye $data[0] ou change mysql_fetch_row par mysql_fetch_array...
Le PHP --> C'est dur !
Keika
le 12/09/2007 à 10:07
Keika
desole du double post.

Et vire le DISTINCT effectivement.

Nexen, encore:



Pour trouver qui possède les animaux, utilisez cette requête :


mysql> SELECT maitre FROM animal;
+--------+
| maitre |
+--------+
| Harold |
| Gwen |
| Harold |
| Benny |
| Diane |
| Gwen |
| Gwen |
| Benny |
| Diane |
+--------+

Toutefois, remarquez que la requête récupère le champ maitre de chaque enregistrement, et certains apparaissent plus d'une fois. Pour minimiser l'affichage, récupérez chaque résultat unique une seule fois en ajoutant le mot-cle DISTINCT :


mysql> SELECT DISTINCT maitre FROM animal;
+--------+
| maitre |
+--------+
| Benny |
| Diane |
| Gwen |
| Harold |
+--------+



En clair DISTINCT evite les repetitions, mais tu n'en aura pas puisque tu cherches l'image d'une news en particulier grace a ton $id
Le PHP --> C'est dur !
Répondre
LoadingChargement en cours