MySQL Befehl gesucht

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Siegem Metatron
Mitglied
Beiträge: 55
Registriert: 07.01.2002 01:00
Wohnort: Weimar
Kontaktdaten:

MySQL Befehl gesucht

Beitrag von Siegem Metatron »

Hallo :)

Bin auf der suche nach einem Umfassenden Befehl.
Möchte mir alle personen auflisten lassen die Zugriff auf ein bestimmtes Forum haben, und kein Mitglied einer Gruppe sind welche zugriff auf dieses Forum hat.

Bekomme so alle Group IDs raus die "Lesen" dürfen in mein Forum Nr.74:

Code: Alles auswählen

SELECT group_id
FROM phpbb_auth_access
WHERE forum_id = '74' AND auth_read = '1' 
Alle hier aufgelisteten group_ids müssten jetzt nur noch verglichen werden in der phpbb_groups
Wenn die group_id aus der auth_access ein group_single_user="1" in der phpbb_groups besitzt. So müsste doch das was übrig bleibt, eine Menschliche group_id sein welche Zugriff auf dieses Forum besitzt ohne einer Gruppe angehörig zu sein die zugriff auf das Forum hat?

Mein Gedanke weitergestrickt:

Code: Alles auswählen

SELECT f.group_id
FROM phpbb_auth_access f, phpbb_groups s
WHERE f.forum_id='74' AND f.auth_read ='1' AND s.group_single_user='1'
Leider ist das Ergebnis etwas recht merkwürdig.
Hat jemand von euch eine Idee wie man hier zu einen einzigen MySQL Befehl kommt der einen alle Beschriebenen Group_id´s anzeigen soll ?

Grüße ;)
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Wenn du die IDs der berechtigten User haben willst, musst du die auth_acess- mit der groups-, diese dann mit der user_group- und die dann zu guter Letzt mit der users-Tabelle in Beziehung bringen. Dafür gibt's i.d.R. bei SQL einen (INNER) JOIN-Befehl.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Siegem Metatron
Mitglied
Beiträge: 55
Registriert: 07.01.2002 01:00
Wohnort: Weimar
Kontaktdaten:

Beitrag von Siegem Metatron »

genau :) das ist mein ziel.

Doch nicht ganz so schnell ;) immer hübsch schritt für Schritt.
Die group_id´s reichen erst mal schon aus. Da man doch alle überig gebliebenen group_id´s mit den user_id´s gleichsetzen kann.

Dennoch funktioniert diese "abgespreckte" version ja bereits schon nicht. Hm....
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Siegem Metatron hat geschrieben:Da man doch alle überig gebliebenen group_id´s mit den user_id´s gleichsetzen kann.
Was willst du???
Schau dir den JOIN-Befehl von SQL an - so bekommst du das am einfachsten hin...

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Siegem Metatron
Mitglied
Beiträge: 55
Registriert: 07.01.2002 01:00
Wohnort: Weimar
Kontaktdaten:

Beitrag von Siegem Metatron »

Naja war ja schon dicht drann. Also gut mit einem ordentlichen Join eben.

Code: Alles auswählen

SELECT  * 
FROM phpbb_auth_access f, phpbb_groups s
WHERE f.group_id = s.group_id AND f.forum_id =  '74' AND f.auth_read =  '1' AND s.group_single_user =  '1'
Bitte korrigier mich, wenn das nu doch kein ordentlicher join war :D

Bin mir noch nicht sicher.
Das ergebnis ist schon verdammt dicht an dem was ich sehen möchte.
2 seltsame group_id´s machen mir noch einen Strich durch die Rechnung.

Kann es sein, das jemand in der phpbb_auth_access zu stehen hat das er Zugriff hätte, obwohl er gar keinen Zugriff hat?
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Siegem Metatron hat geschrieben:Bitte korrigier mich, wenn das nu doch kein ordentlicher join war :D
Es ist ein nettes Hilfskonstrukt - mehr nicht ;-)
Siegem Metatron hat geschrieben:Das ergebnis ist schon verdammt dicht an dem was ich sehen möchte.
2 seltsame group_id´s machen mir noch einen Strich durch die Rechnung.
Du erhälst nun die IDs der Einbenutzergruppen, die Zugriff auf das Forum haben.
Siegem Metatron hat geschrieben:Kann es sein, das jemand in der phpbb_auth_access zu stehen hat das er Zugriff hätte, obwohl er gar keinen Zugriff hat?
???

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Siegem Metatron
Mitglied
Beiträge: 55
Registriert: 07.01.2002 01:00
Wohnort: Weimar
Kontaktdaten:

Beitrag von Siegem Metatron »

*irritierende Behauptungen editiert und gelöscht*
Zuletzt geändert von Siegem Metatron am 21.11.2003 00:59, insgesamt 1-mal geändert.
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Ich glaube, du verwechselst da etwas: die Gruppen-ID bei Einbenutzergruppen ist nur in wenigen Fällen mit der ID des entsprechenden Users identisch (es ist in diesen Fällen reiner Zufall). Du kommst also um eine Auflösung über die user_group-Tabelle nicht herum

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Siegem Metatron
Mitglied
Beiträge: 55
Registriert: 07.01.2002 01:00
Wohnort: Weimar
Kontaktdaten:

Beitrag von Siegem Metatron »

Stimmt, war eine böse verwechslung.

Nehme ich nun die User Tab nun hinzu Hm...

Code: Alles auswählen

SELECT  u.username
FROM phpbb_auth_access f, phpbbl_groups s, phpbb_users u
WHERE f.group_id = s.group_id = u.user_id AND f.forum_id =  '74' AND f.auth_read =  '1' AND s.group_single_user =  '1';
bekomm ich erst recht seltsame Ergebnisse.
Vielleicht kann man diese tabellen nicht gleichsetzen. Da die goup_id nicht unbedingt die user_id ist.

Ich könnt wetten, irgentwer hat bestimmt sowas ähnliches schon mal versucht. ich habe direkt vor mir auflisten zu lassen wer alles auf ein Forum Zugriff hat 8) Mit bedingung , derjenige gehört keiner gruppe an die Zugriff auf das Forum hat.
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Mal als kleine Frage vorweg: ist das nur für private Zwecke oder soll das in 'nen Mod oder so einfließen?

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Antworten

Zurück zu „Coding & Technik“