Wäre interessant, wie die Klasse, die hinter dem Objekt $db steckt, implementiert ist.
Normalerweise sollte der Fehler schon in der Zeile:
PHP-Code:
$result  $db->loadObject() or die (mysql_error()); 
abgefangen werden, würde ich jetzt mal so sagen. Aber scheinbar läuft da was schief, und
loadObject() macht was, was kein gültiges Ergebnis erzeugt, welches dementsprechend nicht korrekt weiterverarbeitet werden kann.