Hello Tom,
$f=auslesen($db, $sql);
if (!isset ($f) or $f[0]!=""){...
Das liegt daran, dass PHP die Variablen eben nicht "klassisch" anlegt, sondern mehrschichtig.
In der einen Schicht wird der Typ vermerkt
In der anderen Schicht der "Wert", der durchaus auch ein "Zeiger" sein kann
Angenommen, die Funktion auslesen() liefert 'false', wenn sie keinen gültigen Rückgabe_wert_ erzeugen konnte, dann ist die Variable zwar in der Namenstabelle angelegt, und ein Typ festgelegt, aber es existiert kein Wert und daher auch keine Ausdehnung in der Wert-Achse. $f[0] wäre aber schon das erste Element in der Wertachse und wurde gar nicht angelegt.
Die richtigte Abfrage müsste also lauten
if(!isset ($f) or $f===false)
oder
if(!isset ($f) or strlen($f)==0) ## die benutze ich immer..., ggf. ergänzt durch trim()
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau