probleme calcul taille SQL

probleme calcul taille SQL - PHP - Programmation

Marsh Posté le 09-04-2006 à 13:04:46    

Bonjour a vous.
 
Je suis en trin de developper un ptit site pour moi, mais la je bloque sur une page : jvous esplique.
 
 
Je veut calculer la taille du SQL utiliser par une base. Sous easyphp, chaque base a un repertoire situer dans /easyphp/mysql/data.
 
Deja, jai mis un alias pour avoir ce repertoire en /SQL.
 
ensuite jessaye de le lister avec le script suivant :
 

Code :
  1. function spaceDisk($adr="." ) {
  2.     static $size;
  3.     $dp=opendir($adr);
  4.     do {
  5.         $itm=readdir($dp);
  6.         if (is_dir("$adr/$itm" ) && ($itm!="." ) && ($itm!=".." ) && ($itm!="" )) {
  7.             spaceDisk("$adr/$itm" );
  8.         }
  9.         elseif (($itm!="." ) && ($itm!=".." ) && ($itm!="" )) {
  10.             $size = $size + filesize("$adr/$itm" );
  11.         }
  12.     }
  13.     while ($itm != false);
  14.     closedir($dp);
  15.     return round($size / (1024*1024),2);
  16. }
  17. $taille = spaceDisk("$site" );


 
 
Cette fonction marche bien pour calculer un truc a la racine du site, mais jse pas dou ca vien on dirai ke ca veut pâs avec mon alias.
 
 
 
Jai essayer dans le rep des data de mettre un fichier php avec ce script et de l'include, mais ca marche pas il me dit :
 

Code :
  1. Warning: main(/calculsql/calcul.php): failed to open stream: No such file or directory in c:\program files\easyphp1-7\www\membre.php on line 86
  2. Warning: main(): Failed opening '/calculsql/calcul.php' for inclusion (include_path='.;C:\Program Files\EasyPHP1-7\php\pear\') in c:\program files\easyphp1-7\www\membre.php on line 86
  3. Notice: Undefined variable: taille2 in c:\program files\easyphp1-7\www\membre.php on line 87


 
ou la ligne 87 et 88 coresponde a l'include, comme si il trouver pas le fichier.
 
 
quelqu'un a t'il une petite idee?
 
Merci a vous d'avance!!!

Reply

Marsh Posté le 09-04-2006 à 13:04:46   

Reply

Marsh Posté le 09-04-2006 à 14:30:17    

albator-hc a écrit :

Bonjour a vous.
 
Je suis en trin de developper un ptit site pour moi, mais la je bloque sur une page : jvous esplique.
 
 
Je veut calculer la taille du SQL utiliser par une base. Sous easyphp, chaque base a un repertoire situer dans /easyphp/mysql/data.
 
Deja, jai mis un alias pour avoir ce repertoire en /SQL.
 
ensuite jessaye de le lister avec le script suivant :
 

Code :
  1. function spaceDisk($adr="." ) {
  2.     static $size;
  3.     $dp=opendir($adr);
  4.     do {
  5.         $itm=readdir($dp);
  6.         if (is_dir("$adr/$itm" ) && ($itm!="." ) && ($itm!=".." ) && ($itm!="" )) {
  7.             spaceDisk("$adr/$itm" );
  8.         }
  9.         elseif (($itm!="." ) && ($itm!=".." ) && ($itm!="" )) {
  10.             $size = $size + filesize("$adr/$itm" );
  11.         }
  12.     }
  13.     while ($itm != false);
  14.     closedir($dp);
  15.     return round($size / (1024*1024),2);
  16. }
  17. $taille = spaceDisk("$site" );


 
 
Cette fonction marche bien pour calculer un truc a la racine du site, mais jse pas dou ca vien on dirai ke ca veut pâs avec mon alias.


 
C'est pas terrible cette variable "static". Je vois ce que tu veux faire (utiliser cette variable pour accumuler les différentes tailles des sous-répertoires) mais je suis pas certain que le php le voit comme moi.
 
En plus, tu renvoies des tailles en Go que tu additionnes avec des tailles en octet que tu transformes encore en Go dans la fonction père...
 
Essaye plutôt un truc de ce style

Code :
  1. function spaceDisk($adr="." ) {
  2.     $size=0;
  3.     $dp=opendir($adr);
  4.     while (($itm=readdir($dp)) != false)
  5.     {
  6.         if ($itm == "." || $itm == ".." || $itm == "" )
  7.              continue;
  8.         $size+=is_dir("$adr/$itm" ) ?spaceDisk("$adr/$itm" )  :filesize("$adr/$itm" );
  9.     }
  10.     closedir($dp);
  11.     return ($size);
  12. }
  13. $taille = round(spaceDisk("$site" ) / 1024 / 1024, 2);


Message édité par Sve@r le 09-04-2006 à 14:35:59

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 09-04-2006 à 17:29:38    

mais la fonction marche bien toute seul.
 
c juste lors de l'include avec l'alias que ca merde.
 
sinon je testerai ton code

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed