0

hello sir,
i have php code to display the following details.

Total size : 1.9 MB
No. of files : 15
No. of directories : 2

but i need to do this by database because i am displaying links from database.
so how it is possible. any suggestions please......... thank you.....
how to display

5
Contributors
8
Replies
31
Views
3 Years
Discussion Span
Last Post by diafol
0

By Database you mean to get the info out from the db (table colum) instead of Manual PHP.
If that the case provide your source let's see.
Otherwise you can just clear the question again

0

Not sure why you'd do this. Directories are usually dynamic, that is, files are added or deleted from them as a rule. So storing static data (a snapshot, if you like) about them in a database is probably not a fair representation of the directory as it is 'currently'.

Perhaps I've got the wrong end of the stick?

Perhaps the DB is updated when you add/delete a file?

Edited by diafol

0
here is the code. 
    <?php
    function getDirectorySize($path)
    {
      $totalsize = 0;
      $totalcount = 0;
      $dircount = 0;
      if ($handle = opendir ($path))
      {
        while (false !== ($file = readdir($handle)))
        {
          $nextpath = $path . '/' . $file;
          if ($file != '.' && $file != '..' && !is_link ($nextpath))
          {
            if (is_dir ($nextpath))
            {
              $dircount++;
              $result = getDirectorySize($nextpath);
              $totalsize += $result['size'];
              $totalcount += $result['count'];
              $dircount += $result['dircount'];
            }
            elseif (is_file ($nextpath))
            {
              $totalsize += filesize ($nextpath);
              $totalcount++;
            }
          }
        }
      }
      closedir ($handle);
      $total['size'] = $totalsize;
      $total['count'] = $totalcount;
      $total['dircount'] = $dircount;
      return $total;
    }

    function sizeFormat($size)
    {
        if($size<1024)
        {
            return $size." bytes";
        }
        else if($size<(1024*1024))
        {
            $size=round($size/1024,1);
            return $size." KB";
        }
        else if($size<(1024*1024*1024))
        {
            $size=round($size/(1024*1024),1);
            return $size." MB";
        }
        else
        {
            $size=round($size/(1024*1024*1024),1);
            return $size." GB";
        }

    }  
    ?>


    <?php
    $path="./";
    $ar=getDirectorySize($path);


    echo "Total size : ".sizeFormat($ar['size'])."<br>";
    echo "No. of files : ".$ar['count']."<br>";
    echo "No. of directories : ".$ar['dircount']."<br>"; 

    ?>
0

You can use this query to sum yout table size

SELECT table_name AS "Table", 
round(((data_length + index_length) / 1024 / 1024), 2) "Size in MB" 
FROM information_schema.TABLES 
WHERE table_schema = "$DB_NAME"
 AND table_name = "$TABLE_NAME";

And about your directory and file.. i need to know your table schema

0

I'm not sure what you're trying to do with the code. You can traverse and sum dir details - OK. But, you want to store this snapshot in a db table? I'm still at a loss...

0

just i want to show the information of folders to the users, thats it. and its not mandatory right...... ok thanks for the replies......

0

and its not mandatory right......

Sorry, I don't understand.

Anyway, are you looking at storing the data such as....

dir_id
parent_dir
dirname
dirsize
dirfiles

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.