Hey,
ich hatte vorher eine extra UserOnline-Tabelle, die machte allerdings wenig Sinn, da viele identische/benötigte Daten schon in der Stammdaten-Tabelle bereits vorhanden sind (UserID, Username, Alter, Geschlecht, ...).
Deswegen nehm ich jetzt gleich die Stammdaten-Tabelle als Basis und frage einfach immer alle User ab, die innerhalb der letzten 30 Sekunden per UPDATE aktualisiert wurden.
Zu meiner Abfrage:
1) angezeigt werden sollen nur User die online sind
2) zuerst "Freude", dann "Favoriten" und danach alle anderen die online sind
3) Freunde = gegenseitig auf Buddyliste, Favoriten = hab nur ich in Buddyliste
4) ev. von mir ignorierte User sollen erst gar nicht in der Liste auftauchen
stamm: userid | username | jahre | ...
1|Anton|23
2|Berta|18
3|Cäsar|34
4|David|27
buddy: buddyvon | buddyfuer
1|2
2|1
1|3
igno: ignovon | ignofuer
1|3
Ich bin also angenommen "Anton" und habe Berta als Buddy, sie mich auch. Weiterhin habe ich David als Buddy, er mich aber nicht (nur Favorit). Außerdem habe ich noch Cäsar als Ingnore, er soll also erst gar nicht erscheinen.
Theoretisch bräuchte ich also sowas zugerückgeliefert:
Code:
++++++++++++++++++++++++++++++++++++++
+ userid + username + jahre + status +
++++++++++++++++++++++++++++++++++++++
+ 2 + Berta + 18 + 2 +
+ 4 + David + 27 + 1 +
+ 1 + Anton + 23 + 0 +
++++++++++++++++++++++++++++++++++++++
Es muss also schon gruppiert nach Buddies, Favoriten und normalen Usern sein und ich muss die anhand einer Status-Nummer unterscheiden können...
Deshalb lasse ich wie oben mometan erstmal alle User abfragen die a)online sind und b) nicht in meiner Ignoreliste.
Danach halt eine Schleife mit allen Ergebenissen durchlaufen und
prüfen ob in Buddyliste komplett drin, nur meinerseits oder gar nicht.