1.2k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Hey,

ich habe ein kleines Problem mit nem Join.

Ich habe folgende Tabellen

Tabelle buddys
buddy1 buddy2 gruppe <= Spaltennamen

buddy1 buddy2 Freunde
buddy2 buddy1 Freunde
buddy1 buddy3 Familie

Die Spalte buddy1 ist jeweil der eingeloggte User, und buddy2 eben der Freund.


Tabelle user
userid username passwort status geschlecht
0 buddy1 passwort 1 m
1 buddy2 passwort 1 m
2 buddy3 passwort 0 w



Ich möchte nun alle Buddys von "'$_SESSION[username]"(Tabelle buddys) sowie deren Geschlecht (Tabelle user) in Form eines Bildes ausgeben.

Mein Befehl sieht momentan so aus:

// Buddys auslesen
$abfrage = "SELECT b.buddy2, u.username, u.geschlecht FROM buddys b LEFT JOIN user u ON b.buddy2 = u.username WHERE b.buddy1 = '$_SESSION[username]'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo "<a href=\"profil/$row->b.buddy2\">$row->b.buddy2</a><img src=\"images/$row->u.geschlecht.gif\" alt=\"geschlecht\"><br>";
}



Achja, die Fehlermeldung die ausgegeben wird sieht so aus


Notice: Undefined property: stdClass::$b in C:\Programme\Tools\Wamp\www\community\start.php on line 33

Notice: Use of undefined constant buddy2 - assumed 'buddy2' in C:\Programme\Tools\Wamp\www\community\start.php on line 33
buddy2
Notice: Undefined property: stdClass::$b in C:\Programme\Tools\Wamp\www\community\start.php on line 33

Notice: Use of undefined constant buddy2 - assumed 'buddy2' in C:\Programme\Tools\Wamp\www\community\start.php on line 33
buddy2



Zeile 33 ist die hier:
echo "<a href=\"profil/$row->b.buddy2\">$row->b.buddy2</a><img src=\"images/$row->u.geschlecht.gif\" alt=\"geschlecht\"><br>";



Danke schonmal!

Gruß D

3 Antworten

0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
$row ist ein Array und kein Object. Du hast hier auch PHP-Hinweise vor dir statt Fehlermeldungen der Datenbank. Also nicht

echo "<a href=\"profil/$row->b.buddy2\">$row->b.buddy2</a><img src=\"images/$row->u.geschlecht.gif\" alt=\"geschlecht\"><br>";

sondern
echo '<a href="profil/'. $row['buddy2']. '">'. $row['buddy2']. '</a><img src="images/'. $row['geschlecht']. '.gif" alt="geschlecht"><br>';
0 Punkte
Beantwortet von supermax Experte (4.8k Punkte)
Zeichen die in PHP eine besondere Bedeutung haben, sind als Eigenschafts- oder Methodenbezeichner in PHP nicht zulässig, wie z.B. der Punkt, der in PHP der Operator zum Zusammenhängen von Zeichenketten ist. Dazu kommt, daß mysql unter PHP standardmäßig die Tabellennamen nicht mit im Ergebnis der mysql_fetch_....()-Funktionen ausgibt, d.h. dein Ergebnis-Objekt hat ohnehin nur die Eigenschaften "buddy2", "username" und "geschlecht". Korrekt wäre daher folgende Zeile
echo "<a href=\"profil/$row->buddy2\">$row->buddy2</a><img src=\"images/$row->geschlecht.gif\" alt=\"geschlecht\"><br>";
.
0 Punkte
Beantwortet von
Hey,

danke für die Antworten! Jetzt tuts!!

Gruß D
...