Tabellen auflisten mit Unterseiten
Bei vielen Tabellen in der Datenbank, hat der Datenbank-Manager unseres CMS Verbindungprobleme. Deswegen werden wir nun statt alle Tabellen auf eine Seite zu Packen, das Ganze auf Unterseiten aufteilen.
Heute geht es erstmal darum, nur die bestimmten Datensätze auszugeben. Die Menü kommt dann nächstes mal dran.
Trotzdem Zählen wir mit der Eigenschaft countTables schonmal wieviele Tabellen vorhanden sind.
Da es sich bei dem Befehl SHOW TABLES nicht um Select handelt, gibt es dort meines Wissens auch kein Limit, so dass wir das Ganze in einer Schleife abfangen müssen.
Die Funktion getTables bekommt nun 2 Parameter: Einmal der Startindex und einmal die Anzahl der Elemente. Die komplette neue MySQL-Klasse (/system/classes/mysql.php) sieht dann so aus:
<?PHP class MySQL{ public static $countTables = 0; function getTables($from, $count){ $res = mysql_query("SHOW TABLES"); while($row = mysql_fetch_row($res)){ if($from > 0){ $from--; } else{ if(sizeof($tables) < $count or !$count){ $tables[] = $row[0]; } } self::$countTables++; } return $tables; } function countTableEntries($table){ $res = mysql_query("SELECT COUNT(*) FROM ".mysql_real_escape_string($table)); $row = mysql_fetch_row($res); return $row[0]; } } ?>
Nun geht’s zu Anzeige der /admin/includes/db.php. Hier wird es nachher den Parameter dbpage geben, der die Seitennummer angibt (auf 0 basierend). Wir müssen dort nur eine kleine Zeile dafür ändern:
... foreach(MySQL::getTables($_GET['dbpage'] * 20,20) as $table){ ...
Übrigens: Daniel hat sich ein bisschen mit dem Dateisystem des CMS beschäftigt, davon wird es dann bald auch noch was geben. Zuerst aber die Datenbank 😉
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Kommentare
Daniel Busch schrieb am 08.09.2009:
So soll das bei solch einem Projekt doch wohl auch sein, bei dem eine Community drumherum aufgebaut werden soll. Ich wollte mich nur aktiv und konstruktiv beteiligen, aber Danke trotzdem für die Erwähnung meiner Wenigkeit. ;-) MfG Daniel
Über uns
Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project