In unserem CMS soll es möglich sein, auch die Datenbank zu bearbeiten (ähnlich wie bei PhpMyAdmin). So muss man nicht immer zwischen PhpMyAdmin und CMS wechseln.
Heute fangen wir an die Tabellen aufzulisten. Dafür gibt es den MySQL Befehl “SHOW TABLES“. Damit auch alles schön objektorientiert ist erstellen wir uns dafür eine MySQL Klasse. Also Datei /system/classes/MySQL.php anlegen.
Darin schreiben wir als erstes die Funktion, die die Tabellennamen als Array zurückliefert:
<?PHP class MySQL{ function getTables(){ $res = mysql_query("SHOW TABLES"); while($row = mysql_fetch_row($res)){ $tables[] = $row[0]; } sort($tables); return $tables; } } ?>
Des weiteren wollen wir dort auch noch die Einträge einer Tabelle zählen lassen. Dafür gibt es die Funktion countTableEntries, welche als Parameter den Namen der Tabelle benötigt. Das sieht dann so aus:
function countTableEntries($table){ $res = mysql_query("SELECT COUNT(*) FROM ".mysql_real_escape_string($table)); $row = mysql_fetch_row($res); return $row[0]; }
Nun müssen wir noch die Klasse in der /admin/index.php importieren. Das sieht dann so aus:
<?PHP session_start(); include("../system/dbconnect.php"); include("../system/settings.php"); include("../system/classes/user.php"); include("../system/classes/menu.php"); include("../system/classes/page.php"); include("../system/classes/MySQL.php"); include("../system/filterfilename.php"); include("../system/sys.php"); ?>
Fehlt uns also erstmal nur noch das ausgeben. Im Hauptmenü wird bereits auf die Datei /admin/includes/db.php verlinkt. In ihr rufen wir unsere Funktionen auf:
<h1>Datenbank</h1> <table> <thead> <tr> <td>Name</td> <td>Aktionen</td> <td>Einträge</td> </tr> </thead> <tbody> <?PHP foreach(MySQL::getTables() as $table){ echo "<tr> <td>".$table."</td> <td>Kommen noch</td> <td>".MySQL::countTableEntries($table)."</td> </tr>"; } ?> </tbody> </table>
Off-Topic:Habt ihr schon die neuen Admin-Kommentare gesehen? Mein Kopf ist nun auf der linken Seite und der Hintergrund meiner Kommentare ist hellblau. So könnt ihr sofort sehen was von mir kommt. Mach mal unten ein Beispielkommentar^^
Dies ist ein Beitrag aus der Aktion Code & Blog, in der hier ein eigenes CMS erstellt wird.





Beispielkommentar XD
Kommentar von Stefan Wienströer — 3. September 2009 @ 16:28
Müssen wir nicht noch die MySQL Klassen im Admin index.php script includen oder war das schon drann und ich habs wieder mal nicht mitbekommen?
Kommentar von Daniel Busch — 3. September 2009 @ 18:52
Musst nur genau lesen
Scherz^^ Hab’s vergessen zu schreiben. Das kommt davon, wenn man coded und nebenbei bloggt. ICh glaub ich erstell mir noch nen zweites Testystem, wo ich einen Tag später das ganze teste und erst dann veröffentliche. Sorry dafür.
Kommentar von Stefan Wienströer — 3. September 2009 @ 19:44
Dafür sind wir (ich) ja da. Das währe wenig lehrreich wenn jeder nur copy und paste machen würde. (Nach dem Motto–>Dummheit schafft Freizeit, oder Team–>Toll ein anderer machts.
Kommentar von Daniel Busch — 3. September 2009 @ 19:54
Da kann man dann auch sofort zu Joomla greifen^^
Kommentar von Stefan Wienströer — 3. September 2009 @ 20:09
Ich lege dir mal die __autoload Funktion ans Herz. Erspart dieses ganze inludegedöns!
Kommentar von Markus Thömmes — 3. September 2009 @ 21:31
Hör mir auf mit dem sperrigen Monster.
Kommentar von Daniel Busch — 4. September 2009 @ 06:53
@Markus: Werd ich mir mal ansehen, danke. Hab schon mit dem Gedanken gespielt gehabt, da mal was anderes zu machen. Bin nur noch nicht zu gekommen was passendes rauszusuchen.
Kommentar von Stefan Wienströer — 4. September 2009 @ 13:26