Seite 3 von 3

Verfasst: 24.11.2004 07:51
von kratzer54847
hoi,

ich glaube ich hab da noch etwas übersehen,nämlich dass es ja neben Mitgliedschaft und nicht Mitgliedschaft auch das Warten auf die Mitgliedschaft gibt. :D

hab also folgenden Query erstellt:

Code: Alles auswählen

SELECT g.group_id, g.group_name, g.group_description, g.group_type,ug.user_pending FROM phpbb_groups g LEFT JOIN phpbb_user_group ug ON ug.group_id = g.group_id AND ug.user_id = '2' AND ug.user_pending = '1' WHERE g.group_single_user = 0 AND ug.group_id IS NULL 
der mit aber irgendwie sämtliche Gruppen rausgibt anstatt die Gruppen,bei denen ein User die Mitgliedschaft beangtragt hat. :cry:

Verfasst: 06.12.2004 19:44
von kratzer54847
*schieb*

habe immer noch keine Lösung gefunden,wie ich die Pending Memberships auslesen kann.

mfg Johny

Verfasst: 06.12.2004 21:02
von Blutgerinsel
Beschäftigst du dich mit den Grundlagen bzw. liest du das MySQL Manual......

Ich glaube nicht.....
Bevor du noch Jahre an dieser kleinen, einfachen Frage hängst hier mal was sponsered by me

Code: Alles auswählen

SELECT
  G.group_id,
  G.group_name,
  IF(UsG.user_pending=0,'Member','Waiting') AS MemberofGroup
  FROM 
    phpbb_groups G
  LEFT JOIN
    phpbb_user_group UsG
  ON 
    G.group_id=UsG.group_id
  WHERE
    UsG.user_id=37 AND G.group_single_user=0
Dir ist wohl nicht klar das alle Datensätzen die es in der Table Gruppe gibt in User_Gruppe vorhanden seinen müssen für User X um Mitglied zu sein.
Was nicht vorhanden ist = kein Mitglied der Gruppe

Ist User Pending auf 1 befindet sich der User auf der Warteschlange der Gruppe ansonsten ist er reguläres Mitglied.

Getestet in den Variationen:
Mitglied
Wartend

Mitglied
Wartend
Wartend

Mitglied
Mitglied
Wartend
Wartend

Mitglied
Mitglied
Wartend
Wartend
Mitglied
Mitglied
Mitglied

Ich glaube ich habe heute meinen netten Tag :roll:

P.S.: Alleinig abgeleitet aus DB

Zum Auslesen empfiehlt es sich nach dem Status zu sortieren und dabei z.B. 2 Arrays oder auch sofort auszugeben.......

SQL Statement z.B. so:

Code: Alles auswählen

SELECT
  G.group_id,
  G.group_name,
  IF(UsG.user_pending=0,'Member','Waiting') as MemberofGroup
  FROM 
    phpbb_groups G
  LEFT JOIN
    phpbb_user_group UsG
  ON 
    G.group_id=UsG.group_id
  WHERE
    UsG.user_id=37 AND G.group_single_user=0
  Order By
    MemberofGroup,G.group_name