dedlfix: SELECT und Namensliste übersichtlich halten (incl. mysql)

Beitrag lesen

echo $begrüßung;

Vinzenz hat ja schon eine Menge gesagt, ich gebe auch noch meinen Senf dazu, zu einem nicht unwichtigen Thema.

$res = mysql_query($abfr);
   while($ausg = mysql_fetch_object($res))

Ein gern gemachter Anfängerfehler ist, nur den Gutfall zu betrachten. Doch die Welt ist schlecht, die des Programmierers ganz besonders :-) Man will auf eine Datenbank zugreifen, aber das dumme Ding macht grad eine mit der Gewerkschaft nicht abgestimmte Pause. mysql_query() ist also nicht erfolgreich gewesen. Was macht es in so einem Fall? Das Handbuch klärt auf. Statt des erwarteten Ressourcen-Wertes liefert es false zurück. Nun soll mysql_fetch_object() an die Reihe kommen und das ist genau wie seine Geschwister mysql_fetch_array() usw. etepetete. Es mag nicht mit booleschen Werten gefüttert werden. Nur Ressourcen-Werte will es haben. Wenn es keinen solchen bekommt, beklagt es sich bitterlich und versaut das schöne HTML-Layout mit einer unformatierten Warnung.

Was also tun? Fehlermeldungen auszuschalten oder zu unterdrücken ist die denkbar schlechteste Alternative. Gleich danach kommt das Sterbenlassen des Scripts, wenn ein Fehler auftrat. Das oft verwendete
  $res = mysql_query($sql) or die('Fehler aufgetreten: ' . mysql_error());
ist zwar schnell hingeschrieben, aber sehr benutzerunfreundlich und eine wegen des Abbruchs unvollständig angezeigte Seite sieht auch nicht gerade professionell aus.

Ein besserer Weg ist, sich das aus dem Tutorial <del>gekla</del>kopierte Beispiel genau anzusehen, und zu den verwendeten Funktionen die Beschreibung im Handbuch nachschlagen. Dort schaue man, was für Parameter die Funktion erwartet und welche Werte sie zurückliefert - sowohl im Gutfall als auch im Fehlerfall. Nun sollte man sich Gedanken machen, wie die Anwendung im Falle eines Fehlers reagieren soll. Diese Frage sollte man sich aus zwei Perspektiven stellen: Anwender und Systembetreiber. Während der Entwicklung ist es ohne Frage sinnvoll, sich den genauen Wortlaut des Fehlers anzuzeigen, doch wenn die Anwendung für die vorgesehenen Benutzer freigegeben wird sind solche Meldungstexte ob der gezeigten Information entweder unverständlich (DAU) oder gefährlich (böser Bube). Eine allgemein gültige, beste Verfahrensweise gibt es nicht. Vielmehr muss der Betreiber des Systems festlegen, was er gern in einem solchen Fall haben möchte. Drei Vorschläge wären:

  • Email mit Fehlertext an den Administrator senden.
  • Fehlermeldung in eine Log-Datei schreiben.
  • Nichts weiter, nur eine Tröstmeldung dem Anwender ausgeben.

Auf jeden Fall aber sollte der Programmablauf so gestaltet werden, dass nicht aufgrund des einen Fehlers viele Folgefehler hinterher kommen.

echo "$verabschiedung $name";