Connect to MySQL-DB für Fotodoku

Dokumentation des Systems


Es werden alle erfassten Fotos (eingescannte Dias, Negative und Digitalfotos) gezeigt. Es werden die Daten in zwei Tabellen erfasst:
Tabelle gruppe: hier wird für die Gruppe eine Abkürzung und die dazugehörige Beschreibung erfasst
Tabelle fotos: hier werden die Felder Fotonummer, Abkürzung für Gruppenzugehörigkeit, Jahr der Aufnahme, Personenbeschreibung und Motivbeschreibung erfasst und evt. der Link auf das Foto, falls es bereits im Internet steht oder ein Minibild wird direkt gezeigt.
Alle Abkürzungen für die Gruppenzugehörigkeit muss auch in der Tabelle gruppe erfasst sein. Dies wurde so gemacht, damit man bei der Erfassung der Fotos nicht so viele Buchstaben dafür erfassen muss.
Für die Erfassung der Bildnummer gibt mehrere Möglichkeiten, für die man sich vorher entscheiden muss:
- Die Nummer ist einzig, d.h. es darf diese Nummer nicht noch einmal vorkommen, eine Möglichkeit dafür wäre z.B. jjjjmmnnnnn, also Jahr, Monat und eine beliebige Nummer
- man verwendet die im Feld Jahr eingegebene Jahreszahl auch für die Nummerierung, dann ist natürlich die Fotonummer kürzer, also mmnnnnn
- wenn schon jetzt die Nummerierung innerhalb einer Gruppe erfolgt (in jeder Gruppe kann die laufende Nummer 1 vorkommen), dann kann auch die Abkürzung zur Nummerierung verwendet werden, also mmnnnn, wobei die Nummer mmnnn innerhalb der Gruppe und Jahr einzig sein muss, aber die Fotonummer kann in jedem Jahr und jeder Gruppe jeweils mit 1 beginnen. Dann ist es so, dass die Bildnummer aus Abkürzung, Jahr und Nummer besteht.
Wenn das eingegebene Jahr zur Identifizierung des Bildes verwendet wird, ist es unbedingt einzugeben, wenn das Jahr unbekannt ist, notfalls das Jahr mit 0000 oder sonst einen vernünftigen numerischen Wert versehen. Das eingebene Jahr wird ja zur Sortierung verwendet, ebenso wie die Abkürzung. Also die Abkürzung ist ebenso ein Pflichtfeld, notfalls hat es den Wert "unbekannt" oder "noch zu klären".

Zur Erfassung des Fotos bzw. des Minifotos:

der Link auf ein Foto, das bereits im Internet steht, ist in meinem Beispiel: kla href="http://wember.eu/alpen/wallis/07091322.jpg">07091322kl/a>
der Wert im Bespiel des Minifoto ist folgendes:
klimg src="foto/090614 (37a).JPG.jpg">
wobei ich das Kleinerzeichen als kl geschrieben habe (damit man die Doku überhaupt lesen kann)

Ich habe meine Fotonummern nach Jahr-Monat oder auch Jahr-Monat-Tag mit angehängter laufenden Nummer aufgebaut. Nachdem die Fotos in Verzeichnissen stehen, die als Oberverzeichnis Jahr und als Unterverzeichnis Monat haben, kann ich mir bei der Dokumentation die Erfassung des Verzeichnisses sparen.

Zur Auswahl

Das Zeichen % ist eine Wildcarte wie bei DOS/Windows *. Wenn also %Hans% eingegeben wird, werden alle Sätze gefunden, bei denen im Feld personen Hans auftaucht, egal ob am Anfang, in der Mitte oder am Ende.
Hans% wäre auch eine Suchmöglichkeit, jedoch muss dann Hans am Anfang stehen.
Hans ist auch eine Suchmöglichkeit, hierbei werden nur Sätze angezeigt, in denen nur das Wort Hans im Feld personen steht.
Achtung: G und g können verschiedene Zeichen sein. Wenn bei %Grat% nichts gefunden wird, könnte aber bei %grat% durchaus etwas gefunden werden. Evt. nach %rat% suchen.
Dies ist zwar bei meiner Datenbank bei 1und1 nicht der Fall, ich bin aber nicht sicher, ob es bei anderen Installationen genauso ist.

Zur Programmierung

Ich habe der Einfachheit halber für beide Versionen dieselbe Datenbank genommen, sowohl Definition wie auch Daten. So kann man das unterschiedliche Verhalten bei der Anzeige bei Version 1 und Version 2 gut verfolgen.
Ich habe zwei verschiedene Programmiermöglichkeiten gewählt, die sich nur in dem einen Punkt unterscheiden, dass bei Version 1 die Überschrift zu den Listen nur unmittelbar über den Daten steht und bei Version 2 die Überschrift außerdem noch im darüber liegenden Fenster (top genannt) liegt.
Zur Erstellung der html-Datei, die aus den php-Einschüben generiert wird, ist folgendes interessante zu sagen:
Man kann die Feldbreite relativ und absolut definieren, ich persönlich bevorzuge die relative Definition, also Feld z.B. 20% der gesamten Fensterbreite, absolut wäre z.B. 200 Pixel. Wenn aber das php-Programm interpretiert wird, dann nimmt der Interpreter Rücksicht auf die tatsächliche Zeichenanzahl pro Feld. D.h. je nach Länge der Daten kann die Feldbreite varieren. Das ist natürlich in der Regel wünschenswert, weil so das Aussehen auch besser ist wie wenn es starr wäre. Die Kehrseite dieser Medaille ist aber, dass dies nur dadurch erreicht werden kann, wenn man die Überschrift in ein anderes Fenster reinstellt und die Feld- und Fensterbreiten fest definiert, also in Pixel. Daher habe ich die Programme in Version 2 index.html und top.html mit Pixel definiert. Beim Programm fotosnachablageort habe ich ebensfalls die fixe Definition gewählt. Hier muss man sich entscheiden, welche Bildschirmbreite man verwenden will. Nachdem bekannt ist, dass die meisten Benutzer eine Bildschirmbreite von 1024 Pixel haben, habe ich bei diesen Programm ein Breite von 1000 Pixel gewählt. Wie man sieht, steht die Überschrift im top-Fenster genau über den Daten. Dies bleibt auch so, wenn man die Fensterbreite von 1000 Pixel nach 1600 Pixel verändert. Geht man jedoch unter 1000 Pixel Fensterbreite verschwindet ein Teil des Datenfensters. Man kann jedoch noch die Fensterbreite der Daten zu Lasten des Navigationsfesters erweitern (mit der Maus auf die Trennlinie zwischen linken und rechten Fenster gehen. Wenn sich der Cursor verändert, kann man mit der gedrückten linken Maustaste dies kontinuierlich durchführen), aber mit 800 Pixel Fensterbreite ist alles ausgereizt.
Nun zum Unterschied die relative Programmierung beim Programm fotonachgruppeundjahr.php. Hier kann das Programmfenster wesentlich kleiner gewählt werden und man kann immer noch alle Daten lesen, ohne die Laufleiste zu bemühen. Jetzt ist die Spaltenbreite nur durch die Breite des Fotos in Spalte Foto (150 Pixel) bzw. durch das längste Wort in den anderen Spalten begrenzt, also so etwa 16 Zeichen.
Noch ein Hinweis: ich habe bewusst auf den Programmen für das Datenfenster (content genannt) immer einen Rücksprung definiert. Die Suchmaschinen lösen die einzelnen Programme des Gesamtfensters auf, so dass es vorkommt, dass nach Ausführen eines Links aus der Suchmaschine nur das Fenster content gezeigt wird. Nun sind die anderen Fenster (navigation und top) nicht mehr zu sehen. Jedoch ist der Rücksprung so programmiert, dass die ursprüngliche Fensterkonzeption wieder aufgebaut wird (Übersicht).

N.B. Bei dieser gezeigten Applikation ist es ohnehin nicht wichtig, die Feldüberschrift immer im Blickfeld zu haben, weil der Dateninhalt selbsterklärend ist.

Die unten stehenden Dokumentationsdateien sind nur über den Link im Anhang meines Buches
"Die Datenbank MySQL als Hilfsmittel für die Darstellung geschichtlicher Themen"
aufrufbar!

Version 1:

(Überschriften sind nicht im Top-Fenster enthalten)

Liste Programme, die für beide Versionen identisch sind:

abk.php
DBfotodokukatalog
dbkonzept.php
dokumentation.php
FORMATE.CSS
fotosnachgruppeundjahr.php
fotosnachablageort.php
motivauswahl.php
navigation.php
persauswahl.php
DB: Definition und Daten



Speziell Version 1:

top.php
index.html

Speziell Version 2:

top.php
index.html
logo.php

Zum Ausdruck:

Nachdem dieses System in Fenstertechnik programmiert ist, will man der Regel beim Ausdruck nur das eigentliche Hauptfenster (wo also die Daten stehen, in diesem Fall die Fotoinformationen). Dies lässt sich einfach so steuern, dann man bei Aufruf des Links (z.B. Fotos sort. nach Gruppe und Jahr) dies nicht mit der linken Maustaste macht, sondern in diesem Fall mit der rechten Maustaste. Nun wird ein Untermenü gezeigt, hier ist die Auswahl "Link in einem neuen privaten Fenster öffnen" sinnvoll. Dies ist so beim Browser Firefox, bei anderen Browsern mag es etwas anders sein.

Änderungsstand: 25-Apr-2015 15:25
Übersicht

Änderungsstand des Programms: 19-Feb-2013
Heinz Wember