Avatar billede blackscorpion Nybegynder
07. marts 2007 - 11:06 Der er 8 kommentarer og
1 løsning

Størrelsen på databasen ?

Hej E.

Har set flere steder at de skriver størrelsen på databasen.

f.eks

43.2 KiB / 20480 KiB

Hvordan kan man få størrelsen på en given database ?
Avatar billede mcgoat Nybegynder
07. marts 2007 - 11:58 #1
Step 1:
Getting connection with the databse
<?php
$db = mysql_connect("hostname", "username","password"); //getting the mysql db connection by passing correct hostname,username and passowrd
mysql_select_db("dbname",$db); //there we pass the db name for which we want the size to be calculated. This is like calling "use dbanme";
?>



Step 2:
The dbsize is the total of Index_length and Data_lenth columns of all the tables present in the database selected.
We will find the size with the below function

<?php
{
$sql = "SHOW TABLE STATUS";
$result = mysql_query($sql); // This is the result of executing the query
while($row = mysql_fetch_array($result))// Here we are to add the columns 'Index_length' and 'Data_length' of each row
{
$total = $row['Data_length']+$row['Index_length'];
}
echo($total); // here we print the file size in bytes
}
?>


Noget der kan bruges?
Avatar billede mcgoat Nybegynder
07. marts 2007 - 12:00 #2
Avatar billede blackscorpion Nybegynder
07. marts 2007 - 12:01 #3
faldt over det her:

$rows = mysql_query("SHOW TABLE STATUS");
$dbsize = 0;
while ($row = mysql_fetch_array($rows)) {
$dbsize += $row['Data_length'] + $row['Index_length'];
}
$kib_size = $dbsize / 1024;
print "database size is: ".$kib_size." KiB";

men den spytter komma tal ud med 10 decimaler..
f.eks : 156.4287109375
mener php har en funktion hvor man kan bestemme at den kun skal vise. feks. 2 decimaler osv.

hvor 156.4287109375 så bliver til f.eks. 156.42 eller 156.4 osv osv.

nogle bud ?
Avatar billede blackscorpion Nybegynder
07. marts 2007 - 12:02 #4
mcgoat -> faldt over dit bud tidligere.. men det ser ud som om at den kun spytter størrelsen på første tabel ud. :(
Avatar billede blackscorpion Nybegynder
07. marts 2007 - 12:16 #5
klarede den sådan her:

$kib_size = strrev(substr(strrev($kib_size), 8));
Avatar billede blackscorpion Nybegynder
07. marts 2007 - 12:17 #6
never mind, ikke altid den spytter 10 decimaler ud. :(
Avatar billede blackscorpion Nybegynder
07. marts 2007 - 12:22 #7
sådan...

$kib_size = $dbsize / 1024;
$decimal = strstr($kib_size, '.');
$kib_size = str_replace($decimal, "", $kib_size);
$decimal = substr($decimal, 0, 3);
print "database size is: ".$kib_size.$decimal." KiB";
Avatar billede blackscorpion Nybegynder
07. marts 2007 - 12:41 #8
Men tak for din tid mcgoat. ;)
Avatar billede mcgoat Nybegynder
07. marts 2007 - 13:04 #9
var så lidt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester