Hallo,
Urgh, nicht böse gemeint aber dein Code sieht schrecklich aus!
Das ganze müsste man in viele verschiedene Teile und Dateien aufteilen.
1. Das SQL für CREATE und INSERT sollte in eigene SQL dateien also database_schema.sql und data.sql oder so.
2. Du bräuchtest eine Abstraktionsklasse für deine Datenbank die z.b. die credentials im construktor übernimmt und da vielleicht gleich ne connection aufbaut und ne Methode hat dein Query ausführt und ein Assoziatives Array mit den Daten und/oder ein Error-Objekt (mit Infos über den Fehler) zurückgibt.
3. Du bräuchtest eine Menue-Klasse die eine Methode hat die die Daten aus der Datenbank holt und als assoziatives Array in einer Instanzvariable abspeichert.
4. Du bräuchtest eine Template-Datei die auf diese Instanzvariable zugriff hat und aus dem Assoziativen Array dann HTML bastelt.
6. Du bräuchtest ein Dispatcher-Script was die HTTP-Anfrage (evtl. gleich mal REST angucken) entgegen nimmt und den richtigen Controller mit der richtigen Methode aufruft.
5. Du bräuchtest eine Controller-Klasse die auf Anfragen wie Create, Read, Update, Delete (CRUD) reagieren kann und die Menue-Klasse dazu benutzt dem Template die Daten zur Verfügung zu stellen.
Grundsätzlich solltest du dir mal MVC (Model, View, Controller) angucken, die Menue Klasse wäre dein Model, das Template dein View und die Controller-Klasse dein Controller. Da kannst du dann anfangen Code wiederzubenutzen.
Die Datenbankklasse kannst du z.B. schon mal in allen Models benutzen um daten zu holen und zu speichern (Vielleicht sogar als Singleton), evtl gibt es in allen Models gemeinsamkeiten die man in einer Elternklasse von diesen reinschreiben kann um sich nicht wiederholen zu müssen, das gleiche Gilt für den Controller.
Ich würde sogar empfehlen von PHP wegzugehen und sich mal Ruby on Rails anzuschauen. Das hat schon von vorn hinein eine sehr gute MVC-Struktur von der man wirklich sehr viel lernt, Ruby ist eine viel schönere OOP-Sprache die die ganzen Fallstricke nicht hat die PHP hat und das ganze SQL wird einem da für den Anfang auch von ActiveRecord abgenommen. Du musst es dann nicht wirklich benutzen aber du würdest ein viel besserer Programmierer werden und würdest OOP verinnerlichen wenn du dich mal mit dem Web-Framework Ruby on Rails beschäftigen würdest.
Jeena