Hello Leute,
ich habe hier einen etwas kniffligen Denkanstoß für alle Pros unter Euch was MySQL Querys betrifft. Ich glaub ich bin grade etwas zu betrunken um das Problem in den Griff zu kriegen.
Also folgendes:
Ich habe 3 Tabellen:
FRIENDS
USERS
TALKS
Talks speichert Postings ab, die ausgegeben werden sollen.
Users speichert Benutzerdaten ab, ganz normal.
Friends speichert virtuelle Freunschaften zwischen zwei oder mehreren Benutzern ab.
Ich habe einige Einträge in der Tabelle Talks und drei Benutzer.
Benutzer ID 1 und 2 sind mit der Datenbank Friends miteinander verbunden:
FRIEND_ID | USER_ID | USER_FRIEND_ID
1 | 1 | 2
Friend id ist eine Auto-Increment Variable
User Id ist die Id des Benutzers der die Freundschaftsanfrage gestellt hat
User Friend Id ist die Id des anderen nutzers der die Anfrage akzeptiert hat
So nun will ich, dass alle Einträge aus TALKS die Nutzer 1 und 2 schreiben bei beiden ausgegeben werden. Bei benutzer 3 jedoch nicht, da der mit niemand befreundet ist...
habe es bis dahin gebracht:
SELECT t.*, u.user_firstname, u.user_lastname FROM talks AS t, users AS u, friends AS f WHERE (u.user_id = '$uid' AND u.user_id = t.user_id) OR (u.user_id = f.user_id AND f.user_id = t.user_id) OR (u.user_id = f.user_friend_id AND f.user_friend_id = t.user_id) ORDER BY t.talk_time DESC LIMIT $entry_count
Bei Benutzer 1 und 2 wird auch alles richtig angezeigt nur benutzer 3 (der zu garkeinen der beiden eine verbidnung hat) werden alle einträge angezeigt + die eigenen
Hat jemand von euch eine Lösung dieses Problems.
Ricgtunge Datenbank Queries zu schrieben ist eindeutig mein Kryptonit.
Lg
Mathias