Tach!
Was ist da falsch?
Das herauszufinden ist Aufgabe des Debugging. Jede Operation in deinem Codes soll etwas bestimmtes tun. Einige nehmen Daten entgegen, einige erzeugen/besorgen welche, einige tun beides. Mit Debugging überprüft man, ob diese Operationen auch das tun, was man konkret von ihnen erwartet. Also bau Kontrollausgaben ein, am besten mit var_dump(), und finde so die problematische Stelle, an der die Daten nicht wie erwartet sind.
Ein zusätzliches Mittel ist, das error_reporting auf E_ALL zu stellen (und display_errors einzuschalten), damit PHP auch auf nebensächlich scheinene Probleme hinweist.
dedlfix.