Ik heb in mijn database zon 10000 links naar bestanden op de server staan. Ik wil van al die bestanden de grote optellen en weergeven.

Ik probeerde dit:

<?php
          $sql = "SELECT SUM(file) FROM downloads_files";
          $res = mysql_query($sql);
          $row = mysql_fetch_array($res);
          $tot = filesize($row['file']);
          echo $tot;
?>

Ik krijg helemaal niks te zien. Wie helpt mij?

BVD, Tdr93
Wat jij nu probeert is om de velden file in je database op te tellen, maar aangezien dat waarschijnlijk een varchar veld is, lukt dat niet, en het is ook niet wat je wilt.

Je zult aan de hand van je database en een loopje ieder bestand moeten aanroepen en de grootte opvragen, dit in een variabele erbij tellen, en dan krijg je wel je totaal.

EDIT: ongeveer zoiets als dit dus:

<?php
          $sql = "SELECT file FROM downloads_files";
          $res = mysql_query($sql);
          while ($row = mysql_fetch_array($res))
{
          
          $tot += filesize($row['file']);
}
          echo $tot;
?>
Zou je een voorbeeld kunnen geven. Ik ben nog niet zó ver met PHP.

Ik snap wel wat het probleem is;)
Hoe kan ik dat in MB krijgen? of gaat dat niet?
@Tdr93
Doet ie het nou?

B - bits - 1
b - bytes - 8 bits
Kb - kilobytes - 1024 bytes
Mb - megabytes - 1024 kilobytes
Gb - gigabytes - 1024 megabytes
Tb - terabytes - 1024 gigabytes
<?php
function size_hum_read($size){
/*
Bron: php.net documentatie filesize functie
Returns a human readable size
*/
$i=0;
$iec = array("B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB");
while (($size/1024)>1) {
$size=$size/1024;
$i++;
}
return substr($size,0,strpos($size,'.')+4).$iec[$i];
}
// Usage : size_hum_read(filesize($file));



$sql = "SELECT file FROM downloads_files";
$res = mysql_query($sql);
while ($row = mysql_fetch_array($res))
{

$tot += filesize($row['file']);
}
echo size_hum_read($tot);
?>
Hij werkt perfect: maar het staat nu in bytes, dat is zo'n verschrikkelijk groot getal..

B - bits - 1
b - bytes - 8 bits
Kb - kilobytes - 1024 bytes
Mb - megabytes - 1024 kilobytes
Gb - gigabytes - 1024 megabytes
Tb - terabytes - 1024 gigabytes
Pb - petabytes - 1024 terabytes
Eb - exabytes - 1024 petabytes
Zb - zettabytes - 1024 exabytes
Yb - yottabytes - 1024 zettabytes

:P
Al die van mij geprobeerd?

De kijkt [als het goed is] automatisch welke het best kan worden toegepast.
[off-topic]
@Tdr93:

De afkorting van bit is 'b' en de afkorting van byte is 'B'.

Dus:
b - bit
B - byte
kB - kilobyte
MB - megabyte
enz...

[/offtopic]
@Blanche
Je hebt gelijk. Maar eigenlijk zouden we het moeten hebben over MiB e.d. maar goed word wel erg offtopic.

Reageren