Seite 1 von 1

Mitglieder einer bestimmten Gruppe anzeigen lassen

Verfasst: 28.06.2012 16:09
von timotheus
Hi @all,

ich würde gerne in unserem Forum auf einer bestimmten Seite Mitglieder einer festgelegten Gruppe anzeigen lasse.

Wie fange ich da am Besten an.

Vmtl. brauchts erstmal eine *.php in der die Datnebank ausgelesen abgefragt wird und dann eine Template Datei die dann die Ergebnisse anzeigt. Leider ist mein Kenntniss Bereich was PHP angeht sehr schlecht. Ich kann eigentlich nur HTML und CSS :oops:

Kann mir jemand sagen wie ich anfangen muss, würde mir das auch gerne aneignen, nur weiss ich noch nicht mal wo ich anfangen soll.

Es genügt im Prinzip die Auflistung wie in der Memberlist nur halt von anfang an nach Gruppe gefiltert und auf einer anderen Seite.

Würde mich freuen wenn mir da jemand den Anfang erklären könnte.

Danke und Grüße
Timotheus

Re: Mitglieder einer bestimmten Gruppe anzeigen lassen

Verfasst: 28.06.2012 16:42
von Pyramide
Wenn du noch gar keine Ahnung von PHP hast, solltest du
  1. Erstmal mit den Grundlagen anfangen und ein PHP-Tutorial durcharbeiten
  2. Gucken, ob es einen vorhandenen Mod gibt, der das macht, was du möchtest (ggf. mit kleineren Anpassungen)
  3. oder einen Auftrag in der Jobbörse einstellen, dass es jemand für dich programmiert

Re: Mitglieder einer bestimmten Gruppe anzeigen lassen

Verfasst: 28.06.2012 17:37
von timotheus
Ok Danke für die schnelle Antwort.

Habe mich schon durch ein paar Tutorials gelesen. Da ich es gern selber machen würde (soll kein MOD werden) möächte ich ungern, das mir jemand etwas schreibt, dann wäre es ja fertig und ich müsste nix mehr tun. :oops:

Mein Ansatz wäre folgender gewesen:

Code: Alles auswählen

<?php
$abfragegruppe = "SELECT * FROM phpbb_user_group WHERE group_id = '11'";

$abfrageuser = mysql_query($abfragegruppe);
while($row = mysql_fetch_object($abfrageuser))
   {
   $abfrageusername = "SELECT * FROM phpbb_user WHERE id ='$abfragegruppe'";

$listuser = mysql_query($abfrageusername);

while($row = mysql_fetch_object($listuser))
   {
   echo "$row->username <br>";
   }

   }
?>
Würde das so in etwa funktionieren, wahrscheinlich nicht?!

Falls ich natürlich hier im völlig falschen Bereich bin dann bitte schieben.

Danke.

Re: Mitglieder einer bestimmten Gruppe anzeigen lassen

Verfasst: 28.06.2012 17:51
von Miriam
Der Ansatz ist schon mal nicht schlecht. Du solltest Dich aber, wenn Du schon innerhalb des phpBB3 programmierst an die "Terminologie" halten und auch phpBB3 interne Funktionen verwenden.

Den Start-Ort (memberlist.php) Deiner Suche hast Du ja nun schon gefunden.
Und so kannst Du Dir (bspw.) die Mitglieder der Administratoren Gruppe anzeigen lassen -> memberlist.php?mode=group&g=111545. Achte auf die übergebenen Parameter.

Re: Mitglieder einer bestimmten Gruppe anzeigen lassen

Verfasst: 28.06.2012 17:59
von Pyramide
Die Variable $abfragegruppe enthält doch die komplette erste SQL-Abfrage, die macht als Bedingung für die user_id doch gar keinen Sinn. Ansonsten brauchst du gar keine zweite Abfrage, sondern kannst einfach einen JOIN verwenden:

Code: Alles auswählen

SELECT u.user_id, u.username, ...
FROM phpbb_user_group ug
JOIN phpbb_users u ON (ug.user_id = u.user_id)
WHERE ug.group_id=123
ORDER BY u.username ASC
Ansonsten noch Lesestoff:
http://wiki.phpbb.com/Deutsch:Vorlage_f ... ene_Seiten
http://wiki.phpbb.com/Tables
http://www.php-faq.de/q-sql-fehlerbehandlung.html

Re: Mitglieder einer bestimmten Gruppe anzeigen lassen

Verfasst: 28.06.2012 18:53
von timotheus
Hey Miriam,

na super dann wäre meine Abfrage ja hinfällig, trotzdem natürlich danke :)

Mit memberlist.php?mode=group&g=11 bekomme ich somit das gesuchte Ergebnis.

Jetzt habe ich es so gemacht, dass ich den Inhalt der memberlist.php in die userlist.php reinkopiert habe und bekomme nun mit aufruf der userlist.php?mode=group&g=11 die Seite, die ich will allerdings, kann man mit weglassen der Parameter dann unter dem eigentlichen Text alle Mitglieder sehen. LOGISCH! 8)

Mal abgesehen davon kommt für Gäste natürlich die Loginseite, will ich auch nicht, man soll schon die User sehen für registrierte Benutzer natürlich mit Link zum Profil und für Gäste ohne Link zum Profil.

Wär folgendes ein Lösungsansatz?

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

include($phpbb_root_path . 'memberlist.' . $phpEx , 'mode=group&g=');

Ich glaub das wird zuviel Input für mich :o

Re: Mitglieder einer bestimmten Gruppe anzeigen lassen

Verfasst: 28.06.2012 18:55
von timotheus
Pyramide hat geschrieben:Die Variable $abfragegruppe enthält doch die komplette erste SQL-Abfrage, die macht als Bedingung für die user_id doch gar keinen Sinn. Ansonsten brauchst du gar keine zweite Abfrage, sondern kannst einfach einen JOIN verwenden:

Code: Alles auswählen

SELECT u.user_id, u.username, ...
FROM phpbb_user_group ug
JOIN phpbb_users u ON (ug.user_id = u.user_id)
WHERE ug.group_id=123
ORDER BY u.username ASC
Ansonsten noch Lesestoff:
http://wiki.phpbb.com/Deutsch:Vorlage_f ... ene_Seiten
http://wiki.phpbb.com/Tables
http://www.php-faq.de/q-sql-fehlerbehandlung.html
Hab zulange mit meiner Antwort gebraucht guck ich mir mal an den Lesestoff. Das muss doch gehen so wie ich das will, wird wohl nur ne Weile dauern :grin:

Dank dir Pyramide