Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1362 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  fonction unlink bloque l'affichage d'une table

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

fonction unlink bloque l'affichage d'une table

n°1456183
soul_visio​n
Posté le 12-10-2006 à 16:22:36  profilanswer
 

Bonjour,
 
je suis en train de faire un album photo en php / mysql.
 
Sur ma page, le contenu de ma page photo s'affiche, et a coté de chaque photo, on peut cliquer sur 'supprimer'. Cela entraine la suppression de l'enregistrement de la photo dans la base et celle de la photo dans le dossier (grace à unlink). Tout fonctionne. Sauf que lorsque je fais appel à cette fameuse fonction unlink, le tableau affichant le contenu de ma page ne se recharge pas.
 
J'ai fait plein de tests et tout fonctionne, sauf lorsque je demande la suppression du fichier.
Pour que vous ayez une idée :
 
ma fonction delFichier :
 

Code :
  1. function delFichier($fichier){
  2. if(file_exists($fichier)) unlink($fichier);
  3. }


 
Qui est appelée à ce moment :

Code :
  1. if ((isset($HTTP_GET_VARS['supp'])) && ($HTTP_GET_VARS['supp'] != "" )) {
  2. $id = GetSQLValueString($HTTP_GET_VARS['supp'], "int" );
  3. $q="select id_rank, nom_photo, id_categorie from photo_tb where id_photo=$id";
  4. $r=mysql_query($q);
  5. $row=mysql_fetch_array($r) or die (mysql_error());
  6. $photo=$row['nom_photo'];
  7. $destination = "/home/hosts/melanie-sevin.com/www/ciaparra/photo/$photo";
  8. $id_rank=$row['id_rank'];
  9. $id_categorie=$row['id_categorie'];
  10. $q="update photo_tb set id_rank=id_rank-1 where id_rank>'$id_rank' and id_categorie='$id_categorie'";
  11. echo $q;
  12. $r=mysql_query($q);
  13. $q="delete from photo_tb where id_photo='$id'";
  14. $r=mysql_query($q);
  15. delFichier("$destination" ) or die (mysql_error());}


 
et la partie qui affiche ma table :

Code :
  1. $query = "SELECT * FROM photo_tb ORDER BY id_categorie, id_rank";
  2.  $result = mysql_query($query);
  3.  while ($val = mysql_fetch_array($result)) {
  4. $list.="<tr>
  5. <td align=\"center\" valign=\"middle\">".$val['id_rank']."</td>
  6. <td align=\"center\" valign=\"middle\">".$val['nom_photo']."</td>
  7. <td align=\"center\" valign=\"middle\">".$val['alea_photo']."</td>
  8. <td align=\"center\" valign=\"middle\">".$val['id_categorie']."</td>
  9. <td align=\"center\" valign=\"middle\"><a href=\"ajout_photo.php?supp=".$val['id_photo']."\">supprimer</a></td>
  10. <td align=\"center\" valign=\"middle\"><a href=\"ajout_photo.php?mod=".$val['id_photo']."\">modifier</a></td>
  11.     </tr>";
  12. }


 
 
Donc, je ne vois pas d'où ça peut venir. Est-ce que lorsque je supprime le fichier, cela empeche les requetes d'atteindre la base ?  
J'ai fait beaucoup de tests, et tout semble fonctionner à part ça..
 
Je vous remercie, si vous avez un conseil ou un indice....
 
Et si zavez besoin de voir la démo pour mieux visualiser :
 
melanie-sevin.com/ciaparra/ajout_photo.php

mood
Publicité
Posté le 12-10-2006 à 16:22:36  profilanswer
 

n°1456186
skeye
Posté le 12-10-2006 à 16:26:35  profilanswer
 

t'es sûre qu'elle est bien supprimée, ta photo?
Tu fais un die(mysql_error()) alors que ton delfichier n'appelle aucune fonction mysql...esasie un die("raté" ) ou ce que tu veux...


---------------
Can't buy what I want because it's free -
n°1456189
soul_visio​n
Posté le 12-10-2006 à 16:29:17  profilanswer
 

skeye a écrit :

t'es sûre qu'elle est bien supprimée, ta photo?
Tu fais un die(mysql_error()) alors que ton delfichier n'appelle aucune fonction mysql...esasie un die("raté" ) ou ce que tu veux...


 
Ah oui, en effet pour le die(mysql_error()) ça doit être l'habitude d'en mettre pour résoudre les probèmes.. Mais de toute façon le fichier est bien supprimé.  

n°1456190
Chaos Inte​stinal
Posté le 12-10-2006 à 16:29:17  profilanswer
 

Je vois une incohérence dans ton code.
Peut-être absolument aucun lien avec ton problème, mais y'a un souçi de logique ici:
 

Citation :

delFichier("$destination" ) or die (mysql_error());


Puisque delFichier() n'utilise pas la base de données, je ne comprends pas bien ce que vient faire là ce mysql_error().
 
Tu es sûr que le fichier est bien supprimé ? Parce que si unlink échoue, ton script va s'arrêter (die) en affichant une chaîne vide (mysql_error() renvoie une chaîne vide s'il n'y a pas eu d'erreur). Ce qui en pratique donne le même résultat que de ne pas afficher ce qui suit, cad ton tableau.
 
 
Edit: multi-toasted [:benou_grilled]

Message cité 1 fois
Message édité par Chaos Intestinal le 12-10-2006 à 16:29:39
n°1456192
skeye
Posté le 12-10-2006 à 16:30:42  profilanswer
 

soul_vision a écrit :

Ah oui, en effet pour le die(mysql_error()) ça doit être l'habitude d'en mettre pour résoudre les probèmes.. Mais de toute façon le fichier est bien supprimé.


tu as vérifié quand même que si tu mettais au chose dans le die ça ne s'affiche pas? :??:


---------------
Can't buy what I want because it's free -
n°1456193
anapajari
s/travail/glanding on hfr/gs;
Posté le 12-10-2006 à 16:30:53  profilanswer
 

y'a pas de return de delFichier ça aide pas a faire un or

n°1456194
soul_visio​n
Posté le 12-10-2006 à 16:30:59  profilanswer
 

Chaos Intestinal a écrit :

Je vois une incohérence dans ton code.
Peut-être absolument aucun lien avec ton problème, mais y'a un souçi de logique ici:
 

Citation :

delFichier("$destination" ) or die (mysql_error());


Puisque delFichier() n'utilise pas la base de données, je ne comprends pas bien ce que vient faire là ce mysql_error().
 
Tu es sûr que le fichier est bien supprimé ? Parce que si unlink échoue, ton script va s'arrêter (die) en affichant une chaîne vide (mysql_error() renvoie une chaîne vide s'il n'y a pas eu d'erreur). Ce qui en pratique donne le même résultat que de ne pas afficher ce qui suit, cad ton tableau.
 
 
Edit: multi-toasted [:benou_grilled]


 
 
Bon ben ce devait etre ce mysql error qui me bloquait l'affichage, car une fois enlevé c'est bon ça fonctionne !
Merci d'avoir repéré cette betise !

n°1456195
Chaos Inte​stinal
Posté le 12-10-2006 à 16:32:22  profilanswer
 

anapajari a écrit :

y'a pas de return de delFichier ça aide pas a faire un or


 
YOU WIN §§

n°1456197
skeye
Posté le 12-10-2006 à 16:33:13  profilanswer
 

anapajari a écrit :

y'a pas de return de delFichier ça aide pas a faire un or


'tain oui, en effet! [:god]
 

soul_vision a écrit :

Bon ben ce devait etre ce mysql error qui me bloquait l'affichage, car une fois enlevé c'est bon ça fonctionne !
Merci d'avoir repéré cette betise !


 
Non, il faut le laisser, et que ta fonction renvoie true ou false suivant que l'opération a réussi ou pas! ;)


---------------
Can't buy what I want because it's free -

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  fonction unlink bloque l'affichage d'une table

 

Sujets relatifs
Appeler une fonction dont le nom peut varier?[PHP] Exploiter le premier elt d'un array retourné par une fonction?
Contenu html en fonction du browserProblème affichage bannières TradeDoubler et autres sites...
PHP : Fonction mail() bloque ma pageune grosse table VS plusieurs tables de tailles moyennes ?
phpBB, fonction mail et OVH[RESOLU] tab multidimensionel en paramètre d'une fonction
[.NET] StreamReader, position dans un fichier, fonction peek et seek 
Plus de sujets relatifs à : fonction unlink bloque l'affichage d'une table


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR