Homepage mit PHP und MySQL Dokumentation


Meine technische Voraussetzungen:
Domain bei 1und1.com  , man muss einen Tarif wählen, der eine MySQL-Datenbank beinhaltet   weitere Tools  

Einleitung
Diese Dokumentation wurde unter der Voraussetzung erstellt, dass die Erstellung einer Homepage mit PHP und MySQL wenig kosten soll und auch von einem Anfänger durchgeführt werden kann. Deshalb habe ein Beispiel mit relativ primitiven Scripten dokumentiert.  Wie man eine Homepage generell erstellen kann (ohne PHP und MySQL), habe ich hier dokumentiert. Alles was dort schon dokumentiert ist, habe ich bewusst bei dieser Dokumentation nicht mehr aufgeführt. Ob man die Skripte unverändert übernehmen will, muss jeder selbst entscheiden, die Ansichten, was schön und wünschenswert ist, gehen weit auseinander. Ich habe mich bei diesem Konzept an die Homepage der ASM angelehnt, wenn ich auch nicht so professionelle Skripte verwendet habe. Ein Professioneller macht dies anders, aber der kann das ja bereits, ich möchte Anfänger unterstützen. Kern dieses Designs ist eine SQL-Datenbank. Jeder hat schon mal mit  einer Excel-Tabelle gearbeitet, eine DB ist auch so etwas ähnliches, nur dass es mehrere Tabellen gibt, die ggf. mehrfach indiziert sind und untereinander verknüpft sein können. Über Datenbanken gibt es genügend Dokumentationen im Internet, dazu schreibe ich bewusst nichts.

Datenbank
Hier ist ein Beispiel so einer Datenbank, das vollständig ist. In diesem Beispiel sieht man sofort, dass es eigentlich nur 4 verschiedene Typen gibt, wenn man die Tabelle visits außer acht lässt, sind es nur 3 Typen: und zwar navigation, die Beschreibungstabellen wie dbkonzept und dokubuchwebseite etc. und die Einleitungstabellen. Alle Beschreibungstabellen sind mehr oder minder gleich aufgebaut, müssen aber nicht, das hängt von den Wünschen und Voraussetzungen des Benutzers ab.  In die allgemeine Tabelle kommt  z.B. der Einleitungstext. Ein Beispiel hierfür ist die Tabelle dbkonzept. Die Tabelle kreisentfernung ist etwas anders aufgebaut, hier ging es mir darum, mir die Eingabe der Entfernung pro Ort insofern zu vereinbachen, dass ich nur einmal die Entfernung pro Landkreis eingeben muss. So wird derjenige, der diese Tabelle pflegt, geführt. Die Einleitungstabellen (wie z.B. dbkonzept) bestehen eigentlich nur einem Feld, dem Feld text, die anderen Felder wie id, kommentar und erstellt sind nur für Dokumentationszwecke. In das Feld text kann man eine herkömmliche html-Datei einfügen, muss aber auch nicht. Es spielt keine Rolle, ob die header-Informationen da sind oder nicht. Der Vorteil einer solchen Tabelle liegt darin, dass die Administrator, der diese Tabelle pflegt, nur das Passwort für "seine" Datenbank braucht. (Im herkömmlichen Verfahren würde er einen html-Editor und die Zugangsberechtigung für den ftp benötigen.) Wenn er aber seine Seite "schön" gestalten will, ist es für ihn einfacher, dies mit einem html-Editor zu tun z.B. NVU. Ich rate aber davon ab, dies mit Word zu machen. Die Formatierungen bei Word und html sind sehr unterschiedlich, die sollte man nicht mischen. Man kann sich die Arbeit der eigenen html-Formatierung auch sparen, z.B. man erstellt einen Report aus Access, der als Webseite ausgegeben wird. In diesem Fall rate ich aber dazu, die von Access erzeugte html-Datei unverändert mittels ftp auf die Homepage zu kopieren. In der Regel wird man aber die Tabellen mit unformatierten Texten füllen und die Formatierung der Formatdatei überlassen (siehe weiter unten). Ich persönlich habe bei der Bücherei, die in einem lokalen Access-System gespeichert ist, die einzelnen Tabellen in MySQL geladen. Ein anderes Beispiel ist eine Tabelle mit Straßennamen. Wie ich das gemacht habe siehe hier.

Fenstertechnik (Programm index.html)
Die Homepage hat 3 Fenster, das linke Fenster ist die Navigation, das rechte Fenster das eigentliche Hauptfenster, dann gibt es noch ein Überschriftenfenster, wo man seinen Verein im Bild darstellen kann. Das Startprogramm (index.html) ist hier als Textdatei dargestellt. Ein Problem bei der Fenstertechnik ist, dass man nicht weiß, wie groß der Bildschirm (Einstellung Pixel, ob 1024 X 768 oder auch 1680 X 1050) des Benutzers ist, bzw. es relativ schwierig ist, darauf angemessen zu reagieren. Deshalb empfehle ich, die verwendeten Parameter, insbesondere den Parameter src="navigation.php" scrolling="auto" zu wählen. Das hat den Vorteil, dass bei kleineren Bildschirmen der ganze Inhalt des Naviagationsfensters durch Scrolling sehen zu können. Ein weiterer wichtiger Punkt ist, dass man die Tabellenwerte (Breite und Höhe)  und auch die Spaltenbreite nicht absolut (also mit Pixel) sondern mit Prozentwerten definiert. Hier wird am besten auf die unterschiedliche Fenstergröße reagiert.
 
Steuerprogramme
Beim Start werden also gleichzeitig drei Programme gestartet: top.php, navigation.php und start.php, das erste wird im oberen Fenster, das zweite im linken, das dritte im rechten Fenster ausgeführt. Die Anzahl der Navigationszeilen sind variabel, sie werden in der Tabelle navigation festgelegt. Hier findet dann der erste Link statt, der in der Regel ein Untermenü ist, wie z.B. Kataster Auswertungen oder Kirchenbücher. Es kann auch kein Untermenü da sein wie bei Start, wo bei meinem Beispiel das Straßenverzeichnis von Kriegshaber erscheint. Eine weitere Möglichkeit ist der Aufruf einer neuen Homepage, die unsere Fenstertechnik verlässt, siehe das Beispiel Dokumentation.
Es ist auch sinnvoll, in der Navigationstabelle ein weiteres Feld mit dem Namen aktiv und Standardwert j einzuführen. Im Normalfall ruft man das Unterprogramm navigation.php auf, das nur die aktiven Sätze berücksichtigt. Beim Test kann man bestimmte Einträge auf aktiv=n setzen, d.h. sie erscheinen nicht im Menü. Um auch beim Testen die nichtaktiven Menüpunkte ansprechen zu können, hat man zwei Testprogramme: statt index.hmtl das Programm index-test.html, das statt dem Unterprogramm navigation.php das Programm testnavigation.php. Das Programm testnavigation.php fragt die Variable aktiv nicht ab, d.h. es erscheinen im Menü sowohl aktive als auch inaktive Sätze.

Untermenü
Wenn man ein Untermenü hat, sollte man als erste Zeile den Link zurück definieren, die anderen Links dieses Untermenüs werden im Hauptfenster ausgeführt. Die Untermenüs können aber auch html-Scripte sein wie z.B. Grenzen.html. Dieses Programm habe ich mit NVU geschrieben. Wichtig ist auch ein Link auf das Programm navigation.php, damit man wieder zur Startseite der Homepage zurückkommen kann. Normalerweise verwende ich statt des Untermenüs eine neue Index-Datei z.B. index-kat.html, die natürlich den Aufruf für das Untermenü enthält. Dies hat Vorteile, wenn man von einem Programm im Untermenü Kataster nicht ins Hauptmenü springen will, sondern wieder den Status zeigen will, wie er beim ersten Aufruf dieses Untermenüs Kataster war.

Dateneingabe
Ich habe bewusst den lokalhost nicht erwähnt, ich arbeite zwar damit, aber man braucht ihn nicht unbedingt, denn die Daten für die SQL-Tabellen kann man auch online pflegen, Aufruf von der Domain (also https://login.1und1.de/ ) und zu <MySQL-Datenbank>  Am Anfang gibt noch keine Datenbank, die man leicht über das Administratormenü erstellen kann. Wenn man - zumindest vorerst - gleich beginnen will, kann man <SQL> aufrufen.  Alternativ kann man sich phpMyAdmin runterladen. Der Aufruf erfolgt mittels Befehl Update.html, das in einem geschützen Verzeichnis liegt, damit nur Berechtigte mittels Passwort die Tabellen pflegen können. Der Unterschied zur ersten Methode ist der, dass man nur die Pflege der Datenbank durchführen kann, bei der ersten Methode hat man alle Administratorrechte. Wenn man viele Datenbanken hat, weil verschiedene Personen unabhängig von einander "ihre" Daten pflegen, nimmt an am besten phpMyAdmin Version 3.5 oder höher, Details siehe hier.

Programmierschritte
Empfohlene Vorgehensweise für Anfänger für das Schreiben eines Skriptes mit php z.B. strassen6.php, das die Straßen von Kriegshaber zeigt. Zuerst muss man sich überlegen, welche Felder man zeigen will, hier in diesem Beispiel sind es alles Felder einer MySQL-Tabelle: SELECT strname, schluessel, id, stadtbeznr FROM statamtstrassen ORDER by schluessel

Beispiel Tabelle


Als zweites überlegt man sich, wie man diese Daten darstellen will, hier empfehle ich eine Tabelle, die man zuerst in einem Muster mit NVU erstellt, z.B. hier
d.h. man erstellt eine Tabelle, in diesem Beispiel mit 3 Spalten und dann fügt man die Daten des Select ein und passt entsprechend die Größe der Tabellenzellen an.
Nun schaut man sich das erstellte Beispiel im Editor an: siehe hier. Als nächstes muss man die php-Befehle einbauen, das Ergebnis steht hier. Betreffend Literatur verweise ich wieder auf diese Seite. Hier sind verschiedene Beispiele aufgeführt. Ich habe nicht die Absicht, einen Kurs für PHP hier zu dokumentieren, das ist für jemand mit Programmiererfahrung ohnehin kein Problem und jemand, der noch nie programmiert hat, geht am besten in einen Kurs bei der Volkhochschule oder einen Computerclub. Der Computerclub macht das praktisch kostenlos, wenn man Mitglied ist. Wenn man sich streng an dieses Beispiel hält, braucht man es ja nur abzuschreiben und analog auf andere Select-Befehle anzupassen. Zur Programmierung mit php-Befehlen verwende ich WinVi32.exe  (mit der Option Zeilenzahlen zeigen). Danach wird das Skript (hier heißt es strassen6.php) auf den Server mittels ftp kopiert. Dann kann man es online (mit Mozilla Firefox) ausprobieren. Wenn man Fehler bei php hat, schreibt der Interpreter die betreffende Zeilennummer raus, die Änderung wird wieder auf dem PC durchgeführt, mit ftp raufkopiert und wieder ausgetestet.

Hintergrund Farben und Bilder
Man kann für die einzelnen Fenster Hintergrundfarben benützen, einige Beispiele.
Ebenso sind Hintergrundbilder möglich, in der Regel muss man mit einem Graphikprogramm (z.B. Paint Shop Pro oder Adobe Photoshop) die Farben aufhellen, damit man die Schrift besser lesen kann. Hier ein Beispiel für ein Hintergrundbild von einer anderen Seite.

Textgestaltung  mit html-Steuerzeichen
Die darzustellenden Texte werden im allgemeinen in MySQL-Tabellen gepflegt. Diese Tabelle(n) werden mittels eines Programmes (z.B. gestaltung.php) ausgelesen und auf dem Bildschirm dargestellt. In diesem Text kann grundsätzlich jedes html-Steuerzeichen verwendet werden. Das html-Handbuch steht hier.  Einige häufige Steuerzeichen sind hier aufgeführt: Es gibt 5 verschiedene Überschriftenkennzeichen h1 bis h5. Dann kann man Texte mit Fettdruck hervorheben, es gibt das Zeichen bold  (b) und das Zeichen strong (strong). Wie diese Textstellen interpretiert werden, hängt davon ab, was in der Format-Datei definiert wurde (bei mir FORMATE.CSS). Diese Formatdatei steht man mir im Root-Verzeichnis und wird im Kopf von jedem Programm aufgerufen. Weitere html-Steuerzeichen sind big, man kann auch zwei oder drei big-Steuerzeichen verwenden. big und das Gegenstück small sind relative Schriftgrößensteuerzeichen. Was die Standardschriftgröße ist, ist auch in der Formatdatei definiert. Wenn einem Benützer dies nicht passt, kann er auch diese Formatdatei außer Kraft setzen und eine eigene Schriftgestaltung im Browser einstellen. Die geht z.B. bei Mozilla Firefox hier: <Extras> <Einstellungen> <Inhalt> <Erweitert> und auch <Farben> hier kann man dann die Schriftgestaltung  einstellen.

Zur Datenpflege in MySQL:
Hier kann man alle Daten eingeben, die auf der Tastatur drauf sind (in den Programmnamen empfehle ich es nicht zu tun, verwendet nur Zeichen des englischen Keyboards, kein Zwischenraumzeichen (space) verwenden!).
Nachdem die Daten später mit html-php interpretiert werden, kann man praktisch alle html-Zeichen eingeben wie z.B. <B> für bold (fettgedruckt), oder <BR> für break (neue Zeile), damit man eine bestimmtes Feld an einer gewünschten Stelle absetzt (damit z.B. eine Telefonnummer nicht auseinandergerissen wird), sehr beliebt bei mir sind die Verweise auf weitere Seiten im Internet, entweder der eigenen Homepage oder auch einer ganz fremden.
Z.B.  die Unterseite für die aktuelle Situation auf der Augsburger Hütte heißt: http://www.heinz-wember.de/MySQL-HP-Entw/huetten/ah_aktuell.html
es wird folgendermaßen codiert: <A HREF="http://www.heinz-wember.de/MySQL-Kriegshaber/dokunavigation.php">Dokumentation Navigation</A>
Die Details zur HTML-Programmierung kann man hier nachlesen.

Navigationstypen
Bei der Navigation gibt es drei verschiedene Typen von Links:
Zugriff auf Seiten mit Passwortschutz
Dazu werden diejenigen Seiten, die man schützen will, in ein Verzeichnis gelegt, für das bei admin Domain bei 1und1 ein Passwort definiert worden ist. Dies ist nur ein Beispiel, ich habe ein Verzeichnis Fotos angelegt, das mehrere Unterverzeichnisse haben kann (die dann natürlich denselben Passwortschutz haben). Die im Beispiel gezeigte Fotogalerie ist mit dem Programm Ulead Photo Explorer erzeugt worden. Als zweites geschütztes Verzeichnis ist mitglieder angelegt worden, das hier der Einfachheit halber dasselbe Passwort hat (nachdem es aber in einen anderen Verzeichnis liegt, wird man wieder aufgefordert, das Passwort einzugeben.

Administrator
Der letzte Menüpunkt ist schließlich das Administratormenü. Erstens ist der Aufruf zum Pflegen der Tabellen in einem besonderen Verzeichnis, das mit Passwort versehen ist. In diesem geschützten Verzeichnis wird das Programm zur Pflege der Datenbanktabellen aufgerufen. Dazu muss man natürlich die 4 folgenden Parameter wissen, die nur der Administrator bekommt. 
Datenbankname db277799443
Hostname db477.1und1.de
Benutzername dbo277799443
Aktuelles Passwort  falsch
Natürlich kann man sich auch als Administrator bei der Domain einloggen (https://login.1und1.de/) und die Funktion <MySQL-Datenbank> aufrufen. Bei dieser Funktion hat man dann auf alle vorhandenen Datenbanken (bei mir sind es mehrere) Zugriff, beim obigen Zugriff kann man das auf eine bestimmte Datenbank beschränken. Das Konzept für die Musterhomepage unter PHP und MySQL gestattet entweder eine Datenbank oder mehrere Datenbanken. Der Tarif bei 1und1 für eine solche Domain ist 1und1 Homepage Perfect, der momentan ca 7 Euro pro Monat kostet (siehe bei 1und1 unter 1und1-Produkte, Hosting, private Homepages, 1und1 Homepage Perfect.)

Verteilte Datenbanken
Das bisher Gesagte geht mit einer Datenbank, in der alle Abteilungen ihre Tabellen haben. Natürlich hat der Administrator für die Datenbank dann auch alle Rechte für alle Abteilungen. Dies ist sicher ein zweckmäßiger Weg, wenn nur ein Administrator die gesamte Homepage pflegt. Es ist auch denkbar, wenn mehrere Personen die Datenbank pflegen, dass man die Security so lässt. Es kann jeder alles von jedem ändern.
Wenn man das aber nicht möchte, gibt es die Möglichkeit, mit verteilten Datenbanken zu arbeiten, d.h. jeder Teiladministrator hat seine eigene Datenbank, in der neben den Abteilungstabellen auch die Tabelle für die Navigation der betreffenden Abteilung vorhanden ist. Alles was im Gesamtkonzept in der Tabelle navigation mit Gruppennummer ungleich 00 drinsteht, muss dann natürlich auf die einzelnen Abteilungsnavigationstabellen verteilt werden.
Der Geamtadministrator erstellt für jeden Teiladministrator eine Datenbank und auch ein Verzeichnis, wo er die Administratorrechte für die Pflege seiner Datenbank hat. Bei meiner Homepage für die Sektion Augsburg hatte ich es so installiert, dass es für die alle Abteilungen einen eigenen Administrator gab. Die Tabelle navigation für diesen Unteradministrator nannte ich sicherheitshalber anders, z.B. untermenu. Sie war aber fast identisch mit der Tabelle navigation aufgebaut.
Der Unteradministrator kann also sein Untermenü pflegen und ebenfalls seine Abteilungstabellen pflegen.
Jeder Unteradministrator kann natürlich weitere Abteilungstabellen erstellen, wie es sich aus der Sachlage in seiner Abteilung ergibt. Weitere Menüpunkte konnten natürlich auch  mit einer Tabelle gepflegt werden. Damit hatte jeder Teiladministrator maximale Flexibilität im Aufbau seiner Unterseiten.
Das bedeutet aber, dass man bei 1und1 einen Tarif braucht, in der man entsprechend viele Datenbanken zur Verfügung hat, da gibt es den Tarif 1und1 Homepage Business, der mehrere Datenbanken und einen Webspace zur Verfügung stellt, oder den Tarif 1und1 Homepage Business Pro, der 10 Datenbanken und einen Webspace von 4 GB zur Verfügung stellt, dieser Tarif kostet nach 6 Monaten monatlich etwa 30 Euro.


Besonderheiten
Diese Homepage ist so designed, dass bei allen Fenstergrößen, egal ob 800 x 600, 1024 x 768 oder auch 1680 x 1050 Pixel die Bildschirmgröße optimal genutzt wird. Bei kleinen Fenstergrößen erscheint das Navigationsfenster natürlich nicht vollständig auf dem Bildschirm. Dann kommt die Windows-Laufleiste. Außerdem kann man die Breite des Navigationsfenster auf Kosten des großen rechten Fensters mittels linker Maustaste am Fensterrand vergrößern.
Die Spaltenbreite kann angegeben werden, aber ob die tatsächliche Spaltenbreite so auch gezeigt wird, hängt von den Werten der Spalte ab. Beispiel: Man möchte erreichen, dass der Straßenname "Obere Osterfeldstraße" nicht in zwei Zeilen aufgeteilt wird. Die Überschrift zu der Spalte ist "Straßenname heute". In diesem Fall wird die Überschrift in zwei Zeilen dargestellt und natürlich auch der Spalteninhalt Obere Osterfeldstraße. Das kann man verhindern, wenn man das Space maskiert darstellt also Spaltenüberschrift  "Straßenname&nbsp;heute". In diesem Fall wird die Überschrift in einer Zeile gezeigt. Generell kann auch beim Bindestrich eine automatische Teilung erfolgen. Dieses Problem taucht natürlich nur dann auf, wenn die Anzahl der Zeichen in allen Spalten größer als 100 % der Bildschirmbreite ist.  Die Maskierung des Space beim Spalteninhalt Obere Osterfeldstraße wäre auch eine Möglichkeit, aber dann gilt dies für alle Darstellungen, was man oft nicht haben will. Will man dies nur bei einem bestimmen Report erreichen, ist die Maskierung des Space  in der Überschrift die bessere Lösung.

Im Großen und Ganzen sind die gängigen Browser in der Interpretation der Steuerzeichen alle gleich. Die Farben der Schriften (bei h1 bis h5 und bold) sind nur sichtbar bei den Browsern Mozilla Firefox, Opera und Google Crom, nicht jedoch bei Microsoft Internet Explorer 8.0 in Verbindung Windows Vista. Bei Google Chrom ist mir aufgefallen, dass das Verändern der Breite des Fensters Navigation nicht funktioniert.

Programmierbeispiele
Zwei Musterprogramme, die stellvertretend für alle ähnlichen Programme sein sollen, sind hier vorgestellt.
1. Auslesen einer Tabelle, hier im Beispiel Alpin-Fahrten der Skiabteilung.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
  <style type="text/css">
     @import url("../FORMATE.CSS") screen;
     body { font-family:Arial,sans-serif; }
     body { background-color: #FFFFFF; } // #FFFF00 gelb; #98FB98 hellgrün; #40EoD0 türkis; #FFFFFF weiß;
     a:link { color:#000000; text-decoration:underline;}
     a:visited { color:#FF0000; text-decoration:underline; }
     a:focus { color:#00AA00; background-color:#80FF80;}
     a:hover { color:#EE0000; text-decoration:none; background-color:#FFFF99; }
     a:active { color:#0000EE; background-color:#FFFF99;}
  </style>   
  <meta name="author" content="Heinz Wember Augsburg">
  <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<!-- Heinz Wember: Muster Tabelle auslesen 15-Jul-2009 09:05 -->
</head>
<body>
<br><h1>DAV Augsburg Skiabteilung Ski Alpin</h1>
<br>
<table style="width: 100%; text-align: left; margin-left: left; margin-right: auto;" border="1" cellpadding="2" cellspacing="2">
  <tbody>
<?php include "../../db/zugriff-dbski.inc.php";
 ?>
<?php mysql_select_db(MYSQL_DATENBANK) or die(mysql_error());
$abfrage = "SELECT `start` ,
`end` , titel, anmeldung, `kommentar_1` , `kommentar_2`
FROM `skia` where start > now() order by start";
$ergebnis = mysql_query($abfrage);
 ?>
<?php while($row = mysql_fetch_object($ergebnis))
  {
     echo "<tr>  <td style=width: 10%; >$row->start  <br>   $row->end </TD>";
     echo  " <td style=width: 30%; > <b>$row->titel </B>";
     echo  " <td style=width: 60%; > $row->anmeldung ";
     echo "<br> $row->kommentar_1 ";
     echo "<br> $row->kommentar_2</TD></tr>";
  }
  mysql_close($db_ski);
?>
  </tbody>
</table>
</body>
</html>

2. Das Standard-Navigationsprogramm
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
  <style type="text/css">
     @import url("FORMATE.CSS") screen;
     body { font-family:Arial,sans-serif; }
     body { background-color: #98FB98; } // #FFFF00 gelb; #98FB98 hellgrün; #40EoD0 türkis;
     a:link { color:#000000; text-decoration:underline;}
     a:visited { color:#FF0000; text-decoration:underline; }
     a:focus { color:#00AA00; background-color:#80FF80;}
     a:hover { color:#EE0000; text-decoration:none; background-color:#FFFF99; }
     a:active { color:#0000EE; background-color:#FFFF99;}
  </style>
  <title>DAV Sektion Augsburg</title>
  <meta name="author" content="Heinz Wember Augsburg">
  <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<!-- Heinz Wember: Muster Navigation 15-Jul-2009 09:05 -->
</head>
<body style="background-image: url(Tofana1.jpg);">
<big>Navigation</big>
<br><br>
<small>
<table  width=20%; text-align: left; margin-left: auto; margin-right: auto;" border="0" cellpadding="2" cellspacing="2">
  <tbody>
<?php include "../db/zugriff-dbhpentw.inc.php";
mysql_select_db(MYSQL_DATENBANK) or die(mysql_error());
$abfrage = "SELECT `gruppe` , `ugruppe` , `titel`
FROM `navigation`  WHERE `gruppe` = '00' and aktiv = 'j'
      ORDER BY `ugruppe`";
$ergebnis = mysql_query($abfrage);
 ?>
<?php while($row = mysql_fetch_object($ergebnis))
  {
     echo  "<tr> $row->titel <br></tr> ";
  }
  mysql_close($db_hp);
?>  </tbody>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
</table>
</center></small>
</body>
</html>

Wie bei beiden Programmen ersichtlich, werden die kritischen Datenbank-Öffnungsskripte, die ja alle nötigen Parameter enthalten, in ein eigenen Verzeichnis gestellt, das eingeschränkte Rechte hat, damit nicht jeder darauf zugreifen kann.

phpMyAdmin
Zur Zeit verwende ich eine alte Version (2.7.0) von phpMyAdmin, das man unter http://www.phpmyadmin.net/ runterladen kann. Die Version 3.1.5 ist aber auch installiert, die zusammen mit MySQL 5.0 arbeitet. Dieses Tool gestattet, dass man für jede Datenbank eine eigene Security einrichten kann. Damit kann der Unteradministrator nur die Tabellen seiner Datenbank pflegen. Ein Passwort für das Verzeichnis der Administratorfunktion verwendet man sicherheitshalber. Natürlich kann der Domain-Administrator mit seinem Passwort alle Datenbanken pflegen. Weitere Details.
Download Version 5.0.4  


Hier steht nun das Muster einer Homepage

Nachsatz
Wie oben schon gesagt, kann man die Datenpflege der SQL-Tabellen online mittels der fertigen Skripte von 1und1 machen, wie sie 1und1 zur Verfügung stellt  (natürlich kann man auch andere Provider als 1und1 benützen, aber ich wollte es so darstellen, wie ich es selber mache) . Nachdem in der Regel die Daten in einem EDV-erstellten Medium vorliegen (Word-Dokument oder pdf-Datei), kann man die einzelnen Felder mittels <kopieren> und <einfügen> übertragen.

Buch: Die Datenbank MySQL als Hilfsmittel für die Darstellung geschichtlicher Themen von Heinz Wember  mit PHP-Version 7.2 (oder praktisch identisch mit 7.4)


zur Übersicht Dokumentationen , HTML-Besonderheiten ,  Homepage Heinz Wember  

Änderungsstand: 15-Aug-2014 update 04-Jan-2021
Heinz Wember