Mit php die größe einer mysql Datenbank bzw Tabelle herrausfinden?

danielmueller

Gesperrt
Wie kann man den mithilfe von php die Größe einer Datenbank bestimmen oder auch die Größe einzelner Tabellen.
Ich meine jetzt wenn man keinen Zugriff auf den Ordner hat in dem mysql die DB Datein speichert.
Irgendwie muss es ja gehen bei phpmyadmin gibts ja auch so ne Funktion.
 
Bei mir funktionierts so:

PHP:
//abfragen
$ergebnis = mysql_query("SELECT * FROM termin");
$sql = 'SHOW TABLE STATUS FROM datenbank LIKE \'tabelle\'';
$ergebnis2 = mysql_query($sql);
$array = mysql_fetch_array($ergebnis2);
$datasize = $array[5] + $array[7];
$datasize2 = $datasize / 1024;

//ausgeben

echo ("Insgesamt ".mysql_num_rows($ergebnis)." Datensätze.<br>");
echo ("Die Gesamtgröße beträgt ".$datasize." byte oder ".$datasize2." kByte.<br><br>");
 
Bei mir kann die Querry nicht ausgeführt werden:
ich bekomme folgende Meldung:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\apachefriends\xampp\htdocs\5.php on line 16
Insgesamt 2 Datensätze.
habs so angepasst:
PHP:
$ergebnis = mysql_query("SELECT * FROM Template_p");
$sql = "SHOW TABLE STATUS FROM daniel-portal LIKE 'Template_p'";
$ergebnis2 = mysql_query($sql);
echo "$ergebnis2";
$array = mysql_fetch_array($ergebnis2);
$datasize = $array[5] + $array[7];
$datasize2 = $datasize / 1024;
Wobei Template_p eine Tabelle in daniel-portal ist.
 
PHP:
$ergebnis = mysql_query("SELECT * FROM termin");

Das "termin" steht nur da weil meine Tabelle termin heisst. Hab vergessen das zu entfernen.
Sorry.
Funktionierts jetzt?
 
Ändere den $sql-String einfach folgendermaßen ab:
$sql = "SHOW TABLE STATUS FROM `daniel-portal` LIKE 'Template_p'";
Der Name der Datenbank enthält ein Minuszeichen. Das ist in einer Query normalerweise ein Rechenzeichen...
Übrigens... Tabellen- und Datenbanknamen am besten immer zwischen ` (Backticks oder wie man die nennt) schreiben. So kann dieser Fehler nicht auftreten...
 
Wie macht man eigentlich die ` oder Backticks mit der Tastatur?
Es funktionier jetzt vielen dank für eure Hilfe. Ich habe noch was hinzugefügt was das ganze vielleicht ein bisschen übersichtlicher macht:
PHP:
$datasize2=round($datasize2, 2);
So hat man eine schöner Zahl.
 
Hallo,
gibts noch eine bessere Lösung? Ich meine hier wird ja viel mehr die größe der Tabelle ermittelt, dann müsste man ja jede Tabelle auswerten und plus denn vergangenen wert.

Kann man nicht die größe eine Datenbank komplett ermitteln?
 
Zurück