• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Fehlermeldung "Trying to get property of non-object"

Witschi262

Blogger
Hi,
ich kriege eine Fehlermeldung nachdem ich aus der Datenbank etwas auslesen möchte.

PHP:
$row = mysql_query("SELECT * FROM user WHERE name LIKE '" . mysql_real_escape_string($_COOKIE['login']) . "'")or die(mysql_error());  $userrank = $row->rank;  $userid = $row->id;  $userpoints = $row->punkte;  $username = $row->name;}

Das include() ich in zwei andere PHP Scripts. In einem der beiden kommt nicht dieser Fehler, im anderen hingegen schon. Das passt für mich einfach nicht zusammen. Woran kann das liegen?
 
Werbung:
mysql_query() gibt kein Objekt sondern nur eine Resource zurück. Du hast also eine der mysql_fetch_*-Funktionen vergessen, vermutlich mysql_fetch_object().
 
Werbung:
Tja, jetzt habe ich fetch_obejct() benutzt, und es will trotzdem nicht.

PHP:
$mysqlquery = mysql_query("SELECT * FROM user WHERE sessid LIKE '$sessid'")or die(mysql_error());$row = mysql_fetch_object($mysqlquery);  $userrank = $row->rank;  $userid = $row->id;  $userpoints = $row->punkte;  $username = $row->name;  $usersessid = $row->sessid;}

Außerdem habe ich eine function(), in der ich Variablen benutze. Diese Variablen speise ich über include() aber von einer anderen Datei ein. Das nimmt er nicht an und es heißt "undefined Variable"
 
Du solltest vor dem Auslesen der Inhalte mit mysql_fetch_object() auch noch prüfen, ob es überhaupt Ergebnisse gibt. Wenn es keine gibt, gibt es natürliche eine Fehlermeldung.

Aus dem Code kann man so leider den Zusammenhang mit $sessid nicht erkennen. Die Variable muss natürlich gesetzt sein, wenn Du das Statement in dem Sinne erfolgreich abschicken willst, wie Du es erwartest.
 
Wie soll ich das auf die Beine stellen? Bei MySQL_num_rows meckert er dass er einen boolean kriegt.

PHP:
$sessid = $_COOKIE['login'];$mysqlquery = mysql_query("SELECT * FROM user WHERE sessid LIKE '$sessid'")or die(mysql_error());$row = mysql_fetch_object($mysqlquery);$num_rows = mysql_num_rows($row)OR die(mysql_error()); if($row > 0)  {

Und zur Variable: Die hat mit dem hier eig. nichts zu tun. Nur ich wollte keinen neuen Thread aufmachen.
In einer texts.php speicher ich quasi alle Text Variablen ab. Beispielsweise $welcome = "Du bist auf unserer Homepage gelandet";
Und in einer Function() verwende ich diese variable.
 
Werbung:
Nach dem du einige banale Fehler korrigiert hast, kennen wir dein aktuelles Script nicht. Es wäre auch schön, wenn du mal ein paar Zeilenumbrüche in den Quellcode einbauen würdest, das macht die Sache deutlich lesbarer.
 
Werbung:
Und warum bekommen andere die Zeilenumbrüche hin?

Der Link ist Käse, da kommt nichts. Und selbst wenn, wer sieht sich ein Image an?
 
Dann kannst du den Link kopieren. Das frage ich mich auch. Ich kopiere das 1:1 rein und das macht eben HTML.de draus. Und ich möchte nicht diskutieren über Zeilenumbrüche und Bilder..
 
Werbung:
Zurück
Oben