Jump to content
InvisionCommunity.de - Der Deutsche Invision Community Support
Sign in to follow this  
Maxwin

Anzahl der User einer Gruppe anzeigen lassen ?

Recommended Posts

...die Anzahl soll in einer Box des Dragoran-Portals zu sehen sein.

Die Mitgliederliste besteht aus zwei Gruppen....normalen Mitgliedern und Premium-Mitgliedern...letztere möchte ich gerne darstellen.

Share this post


Link to post

na denn mach es doch :)

Eben, denn schwer ist es nicht. ;)

Das Problem, das du noch keine mundgerechte Lösung hier bekommen hast, liegt wohl daran, das man jede kleinste Information quasi aus dir rausprügeln muß.

Die Realisierung ist relativ einfach.

Das benötigte SQL Statement wäre

SELECT count( id ) as premiummembers FROM ibf_members WHERE mgroup = X GROUP BY mgroup

Wobei natürlich X für die ID der Gruppe steht und entsprechend angepaßt werden müßte.

Natürlich müßte das irgendwie in das Portal rein.

Entsprechender PHP Code wäre beispielweise

$DB->query("SELECT count( id ) as premiummembers FROM ibf_members WHERE mgroup = X GROUP BY mgroup");

$data = $DB->fetch_row();

echo $data['premiummembers'];

Dies ist jedoch nur vereinfacht dargestellt, müßte natürlich Zugriff auf die Instanz $DB der Datenbankklasse haben und ins Portal eingegliedert werden. Da ich aber das Portal nicht so gut kenne, aus diversen Gründen und Abneigungen, die hier nichts zur Sache tun, kann ich dir keine mundgerechte Lösung präsentieren.

Nebenbei, da es sich um ein Problem mit einem Mod handelt, hab ich das Thema verschoben.

Share this post


Link to post

Vielen Dank für die bisherige Hilfe. Leider ist mir damit aber noch immer nicht geholfen.

In der Tabelle ibf_stats befindet sich das Feld MEM_COUNT - dort wird die aktuelle Zahl aller Mitglieder eingefügt/aktualisiert. Hier kann ich doch nun auch ein weiteres Feld anlegen, z. B. MEM2_COUNT für die Premium-Mitglieder.

Im Portal werden die Gesamtmitglieder so ausgegeben:

$content .= $ibforums->lang['total_mem'] . $std->do_number_format($stats['MEM_COUNT']) . "<br/>";
Demnach kann ich die Premium-Mitglieder z. B. so ausgeben:
$content .= $ibforums->lang['premium_mem'] . $std->do_number_format($stats['MEM2_COUNT']) . "<br/>";

Nun aber die Frage: In welcher Datei muss ich nun die Datenbankabfrage für dieses Feld MEM2_COUNT hinzufügen ?

Edited by Maxwin

Share this post


Link to post

Nein, du machst folgendes:

$DB->query("SELECT count( id ) as premiummembers FROM ibf_members WHERE mgroup = X GROUP BY mgroup");

$data = $DB->fetch_row();

$content .= $ibforums->lang['premium_mem'] . $std->do_number_format($data['premiummembers']) . "<br/>";

Eine zusätzliche Spalte in der ibf_stats würde viel mehr Aufwand nach sich ziehen. So müßte diese Spalte jedesmal aktualisiert werden, wenn du ein Mitglied in oder aus der Gruppe nimmst.

Share this post


Link to post

Wie ich leider erst jetzt festgestellt habe, werden die normalen Mitglieder und die Premium-Mitglieder nicht so dargestellt, dass letztere in ersteren enthalten sind.

Statt 7.000 Mitglieder - davon 200 Premium-Mitglieder heisst es 6800 Mitglieder und 200 Premium-Mitglieder.

Wie kann ich das korrigieren ? Es soll bei Mitglieder die Gesamtzahl angezeigt werden - also Gruppe 1 +3

Share this post


Link to post

Indem du die Anzahl der Premium Mitglieder vor der Ausgabe an der Stelle wo du die Mitglieder anzahl ausgiebt mittels einer Addition wieder aufrechnest? So nach dem muster $mitgliedergesamt = $mitglieder + $premiummitglieder; echo $mitgliedergesamt;

Allerdings würd ich die Ausgabe dann so formatieren, um nicht für Verwirrung zu sorgen:

Wir haben insgesamt X Mitglieder, davon sind Y Premiummitglieder (und Z normale Mitglieder)

/Edit: Wenn es darum geht bei PHP ein Semikolon zu vergessen bin ich Weltmeister :P

Edited by Modula

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×