ilch Forum » Ilch Clan 1.1 » Allgemein » Profilansicht (Eigene Gruppen Auflisten)

Geschlossen
  1. #1
    User Pic
    htdocs Mitglied
    Registriert seit
    29.04.2010
    Beiträge
    492
    Beitragswertungen
    17 Beitragspunkte
    Hallo zusammen,

    Da ich schon mal eine frage gestellt habe nur mit Freunde auflisten, brauche ich jetzt das für Meine Gruppen auflisten.

    Im diesen Tehma externer Link wurde mir sehr geholfen von Mairu.

    Da ich noch nicht so ganz mit dem sql abfragen klar komme, brauche ich hier auch nochmal Hilfe.

    Die Auflistung im Profil sollte so aussehen:
    • Gruppenname (4)


    Das in klammern soll die Anzahl der Mitglieder "wenn möglich" anzeigen. Wenn es mit der anzahl nicht klappt reicht vollkommen der Name der Gruppe die ich beigetrehten bin.

    Ich nutze die User Gruppen Modul von ws-körner (groupx)

    2.Frage
    Kann mir einer mal ein Link geben wo man das mit der sql abfrage mal nachlesen kann, eher am besten wies bei ilch richtig Funktioniert zwinker

    Hinweis:Kein Link zu Homepage vorhanden, da ich es aufen computer alles habe.
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    htdocs Mitglied
    Registriert seit
    29.04.2010
    Beiträge
    492
    Beitragswertungen
    17 Beitragspunkte
    Keiner ne idee.. zwinker
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Sniper Mitglied
    Registriert seit
    31.10.2007
    Beiträge
    1.468
    Beitragswertungen
    63 Beitragspunkte
    Doch ist eine einfache Sql abfrage, die ich dir morgen mal schicken kann. Bin momentan nicht an meinem Computer. Bezüglich der Sql abfragen kannst du in GOOGLE nachschauen, da gibt es tausende von Tutorials. Der einzigste Unterschied ist dass du die Tabelle prefix_deineTabelle nennen musst
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    htdocs Mitglied
    Registriert seit
    29.04.2010
    Beiträge
    492
    Beitragswertungen
    17 Beitragspunkte
    Das wäre nett .. Dank dir..

    tausende von Tutorials
    ja das ist ja das Problem mit zwinker haste ein guten link, was gut verständlich sein könnte. Weil möchte das endlich selber auch mal hinbekommen mit der sql abfrage. lächeln
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Sniper Mitglied
    Registriert seit
    31.10.2007
    Beiträge
    1.468
    Beitragswertungen
    63 Beitragspunkte
    Schaue dir den Link mal an. Der ist sehr gut für Anfänger

    externer Link
    1 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    htdocs Mitglied
    Registriert seit
    29.04.2010
    Beiträge
    492
    Beitragswertungen
    17 Beitragspunkte
    Oki mach mal mal lächeln Dank dir..
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Treicio gelöschter User
    $query = db_query("SELECT COUNT(*) FROM prefix_groupx_user WHERE uid=".$uid);
    $result = db_result($query, 0);


    Und dann noch ausgeben..

    Wenn $tpl mit $row gesetzt wird ( also $tpl->set_ar_out() ) dann einfach nach $result folgendes:

    $row['groups'] = $result;


    Wenn es über einen Array gemacht wird der aus einzelnen Variablen besteht einfach hinzufügen:

    'groups' => $result,


    Und wenn alles per $tpl->set() gemacht wird macht man folgendes:

    $tpl->set('groups', $result);


    Also wenn ich richtivg verstanden habe ^^
    Das wäre ejtzt für Count Gruppen ^^


    Zuletzt modifiziert von Treicio am 13.05.2011 - 16:26:45
    1 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    htdocs Mitglied
    Registriert seit
    29.04.2010
    Beiträge
    492
    Beitragswertungen
    17 Beitragspunkte
    Hi Danke dir,

    Werd das morgen gleich mal Testen ..

    Aber wenn ich das richtig sehe werden da nur die anzahl von usern in der gruppe angezeigt?

    Hier noch mal das beispiel:

    Gruppenname (4)

    das in (4) soll eine beispiel zahl sein gerade die aber nachher die anzahl anzeigt wie viele user in der gruppe sind.

    Und dann müsste ich das nur noch im Profil einbaun, das die user sehen können in welche gruppe welche user sind..
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Treicio gelöschter User
    Achso... Naja guck ich mir nachher ant
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    htdocs Mitglied
    Registriert seit
    29.04.2010
    Beiträge
    492
    Beitragswertungen
    17 Beitragspunkte
    ja das wäre doch klasse lächeln

    Habe schon ein guten link bekommen wo ich nachfragen kann, aber wenn du schneller bist gehts auch, soll ja auch andere Helfe nicht nur mir zwinker
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Sniper Mitglied
    Registriert seit
    31.10.2007
    Beiträge
    1.468
    Beitragswertungen
    63 Beitragspunkte
    hat der Link dir geholfen? gehe doch mal hin und probiere die abfrage selber zu machen, ist eine gute Übung... du musst nur beachten das du eine JOIN abfrage machen musst, mit den Tabellen prefix_groups und prefix_groupsusers.. wenn du Fragen hast, kannst du uns Fragen
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Treicio gelöschter User
    Er benutzt Group eXtreme xD
    Da heißt es prefix_groupx und prefix_groupx_user ^^
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Sniper Mitglied
    Registriert seit
    31.10.2007
    Beiträge
    1.468
    Beitragswertungen
    63 Beitragspunkte
    aso ok xD dann halt so xD
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    htdocs Mitglied
    Registriert seit
    29.04.2010
    Beiträge
    492
    Beitragswertungen
    17 Beitragspunkte
    Zum nachschauen bin ich noch nicht gekommen, aber die abfrage benötige ich noch.. ^^

    Mit den usern ausgeben und anzahl der freunde in den wohnort hat ja auch gut geklappt, nur fehlt mich das mit der gruppe anzeige lächeln

    Hatte ja schon selber probiert, aber da funkt vorne und hinten nichts -.-
    Soweit bekomme ich alles auf die reihe nur die sql abfragen immer noch nicht. grumml
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    htdocs Mitglied
    Registriert seit
    29.04.2010
    Beiträge
    492
    Beitragswertungen
    17 Beitragspunkte
    Hallo,

    Ich bekomme es nicht hin traurig

    Ich würde mich freuen wenn Ihr mich die sql abfrage Fertig machen könnt,
    Ich wollte eigendlich die sql abfrage mal posten, aber ich dummbads habe die gelöscht gehabt -.-

    Vielen Dank
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    Ist halt etwas schwer, wenn man nicht weiß, wie de MySQL-Tabelle aufgebaut ist, etc.

    Da die Seite des Erstellers Offline ist, hat man eben auch keine Chance nachzuschauen. zunge


    Zuletzt modifiziert von DaStIaC am 26.05.2011 - 16:13:41
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    htdocs Mitglied
    Registriert seit
    29.04.2010
    Beiträge
    492
    Beitragswertungen
    17 Beitragspunkte
    hallo,

    Kein Problem hab ja alles da lächeln

    Hier wäre die sql "installation.sql"

    CREATE TABLE `prefix_forumx` (
      `id` mediumint(10) NOT NULL auto_increment,
      `title` varchar(150) NOT NULL,
      `groupid` varchar(25) NOT NULL,
      `lastp` varchar(250) NOT NULL,
      KEY `id` (`id`)
    ) ENGINE=MyISAM ;
    
    CREATE TABLE `prefix_forumx_posts` (
      `id` mediumint(10) NOT NULL auto_increment,
      `tid` varchar(10) NOT NULL,
      `uid` varchar(10) NOT NULL,
      `text` text NOT NULL,
      `datum` varchar(250) NOT NULL,
      `edatum` varchar(250) NOT NULL,
      KEY `id` (`id`)
    ) ENGINE=MyISAM ;
    
    CREATE TABLE `prefix_groupx` (
      `id` mediumint(10) NOT NULL auto_increment,
      `creater` varchar(250) NOT NULL,
      `moderator` varchar(250) NOT NULL,
      `name` varchar(50) NOT NULL,
      `text` varchar(250) NOT NULL,
      `info` text NOT NULL,
      `home` varchar(250) NOT NULL,
      `view` varchar(10) NOT NULL,
      `user` varchar(10) NOT NULL,
      KEY `id` (`id`)
    ) ENGINE=MyISAM ;
    
    CREATE TABLE `prefix_groupx_user` (
      `id` mediumint(10) NOT NULL auto_increment,
      `uid` varchar(250) NOT NULL,
      `status` varchar(250) NOT NULL,
      `groupid` varchar(250) NOT NULL,
      KEY `id` (`id`)
    ) ENGINE=MyISAM ;
    
    
    INSERT INTO `prefix_modules` VALUES (NULL , 'groupx', 'Groupx', 0, 1, 1);


    Sollte ja für den zweck ausreichen, habe jetzt direck die sql gewählt da ich sonst erst wieder alle (groupx) sql´s dumpen müsste zwinker

    Dank dir wenn du mich helfen kannst..


    Zuletzt modifiziert von htdocs am 26.05.2011 - 18:29:32
    0 Mitglieder finden den Beitrag gut.
  18. #18
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    Ok hab nen bisschen rumprobiert, so dickere Querys sind nicht gerade mein Spezialgebiet, aber anscheinend funktionierts mit folgendem Query:

    $sql2 = "SELECT b.name, a.groupid, b.id, a.uid, COUNT(c.groupid) as count
    		FROM prefix_groupx_user a 
    		LEFT JOIN prefix_groupx b
    		ON a.groupid = b.id
    		LEFT JOIN prefix_groupx_user c
    		ON a.groupid = c.groupid
    		WHERE a.uid = ".$_SESSION['authid']."
    		GROUP BY c.groupid";
    
    $query = db_query($sql2);
    
    while($row = db_fetch_assoc($query)) {
    	echo $row['name']." : ".$row['count']."<br />";
    }


    $_SESSION['authid'] muss halt mit der UserID des Users ausgetauscht werden. Also mit den Standard Teams von ilch hat das ganze wunderbar funktioniert, habs mal schnell auf groupx umgeschrieben, ist halt ungetestet, habe nur kurz den query auf fehlerhafte Syntax getestet, war aber nicht der fall.

    Musste halt mal testen

    EDIT: Um das vielleicht mal zu erklären:

    Zuerst werden alle Gruppenzuweisungen des Users ausgelesen (WHERE a.uid = ".$_SESSION...). Danach wird der Gruppenname geholt, indem man per LEFT JOIN in die Gruppen-Tabelle geht und sich nur die rausholt, deren id (b.id) gleich der Gruppen-ID, die bei der User-Zuweisung eingetragen ist, (a.groupid) ist. Zum Schluss müssen dann noch alle User der ausgelesenen Gruppen gezählt werden, dafür sucht man sich nochmal die Gruppen des Users raus, da beim ersten Auslesen ja nur die ausgelesen wurden, die die ID des gewählten Users entsprachen. Und diese zählt man dann mit COUNT(c.groupid) und nennt das z.b. count oder members um dann mit $row['count'] oder eben $row['members'] auf die Anzahl der Mitglieder zuzugreifen. GROUP BY c.groupid am Ende nicht vergessen, da das COUNT() sonst nicht funktioniert.

    Ich weiß: Bahnhof. Kann man eher schlecht erklären lachen

    Vielleicht nochmal:

    SELECT b.name, a.groupid, b.id, a.uid, COUNT(c.groupid) as count
    FROM prefix_groupx_user a
    WHERE a.uid = ".$_SESSION['authid']."


    Der Teil holt grob gesagt erstmal alle GruppenIDs, in denen der User drin ist.

    LEFT JOIN prefix_groupx b
    ON a.groupid = b.id


    Der Teil sorgt für den Gruppennamen, indem man alle Gruppen ausliest, deren ID der oben ausgelesenen entspricht.

    LEFT JOIN prefix_groupx_user c
     ON a.groupid = c.groupid


    Der Teil sucht jetzt nochmal alle User in Abhängigkeit zur Gruppen-ID. Im ersten Teil hatten wir das ähnlich, aber da wurde in Abhängigkeit zum User gesucht, würde man das zählen, hätte man also nur den gesuchten User, da wäre die Mitgliederzahl also logischerweise immer nur 1. Hier suchen wir aber alle Einträge, die die besagte GruppenID beinhalten.

    COUNT(c.groupid) as count
    GROUP BY c.groupid


    Das zählt im Grunde am Ende alle Mitglieder.

    Falls du das ganze irgendwie noch sortieren möchtest, hängst zu am Ende noch ORDER BY b.name an, also

    GROUP BY c.groupid ORDER BY b.name


    b.name = Sortierung nach Gruppen-Name
    b.id = Sortierung nach Gruppen-ID
    count = Sortierung nach Mitgliederzahl

    Als Beispiele :>



    Zuletzt modifiziert von DaStIaC am 26.05.2011 - 20:16:24
    1 Mitglieder finden den Beitrag gut.
  19. #19
    User Pic
    htdocs Mitglied
    Registriert seit
    29.04.2010
    Beiträge
    492
    Beitragswertungen
    17 Beitragspunkte
    Hi,

    Ganz gut gelöst, musste nur bissel was verändern hier..

    Dein code:
    while($row = db_fetch_assoc($query)) {
        echo $row['name']." : ".$row['count']."<br />";


    habe ich mit diesen ersetzt

    while($row = db_fetch_assoc($query)) {
      $groupx .= $row['name'] . ' (' . $row['count'] .') ';


    und bei

    include('user_infos.php');
    $ar = array (


    muss das rein

    $ar = array (
     'GROUP' => $groupx,


    Naja laufen tut es..mit kleines Problemchin noch ^^

    der Name der Gruppe mit der anzahl der Mitglieder der Gruppe..

    Beispiel: Danke DaStIaC (24)

    zunge

    /edit hier das Problem:

    Es wird auf jeder seite vom user das gleiche ausgewiesen, es sollte eigendlich das anzeigen was der jewaldige user gerade für gruppen hat.

    Glaube mal das Problem liegt einfach hier dran
    WHERE a.uid = ".$_SESSION['authid']."


    Weil er muss ja vom User die id auslesen, und nicht meine nehmen ^^

    Aber mist ist weis nicht was ich da jetzt einfügen muss.. stehe da gerade bissel nebenmir zwinker

    Aber sonst schon gut gelöst lächeln

    /edit:

    So habs geschaft lächeln

    Hier das einfach ändern
    WHERE a.uid = ".$_SESSION['authid']."

    in das
    WHERE a.uid = $uid


    Laufen tuht alles wies sein soll..
    Fals doch jemandt ein fehler sieht bitte mal Antworten hier danke..

    Danke an die Mich hier geholfen haben..



    Zuletzt modifiziert von htdocs am 27.05.2011 - 10:21:47
    0 Mitglieder finden den Beitrag gut.
  20. #20
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    Jo das meinte ich ja, hab bei mir nur schnell ne Content-Seite gebastelt zum Testen und dafür halt meine eigene ID immer genommen.

    Wäre besser wenn du aus $uid ".$uid." machst, ist leserlicher, ansonsten nicht weiter schlimm.
    0 Mitglieder finden den Beitrag gut.
  21. #21
    User Pic
    htdocs Mitglied
    Registriert seit
    29.04.2010
    Beiträge
    492
    Beitragswertungen
    17 Beitragspunkte
    Hi,

    Oki werde das noch ändern..

    Dank dir noch mal für deine nette Hilfe lächeln
    0 Mitglieder finden den Beitrag gut.
  22. #22
    User Pic
    htdocs Mitglied
    Registriert seit
    29.04.2010
    Beiträge
    492
    Beitragswertungen
    17 Beitragspunkte
    Hi,

    Ich wieder lächeln

    So es läuft ja alles ganz gut, wollt nur mal fragen gibt es irgendwie ne möglichkeit nur eine bestimmte anzahl aufzulisten von gruppen?

    Weil zu viele gruppen in der Profil ansicht, wäre zu extrem. Eventuell das bsp nur 20 gruppen aufgelistet werden?.

    Dankö..
    0 Mitglieder finden den Beitrag gut.
  23. #23
    User Pic
    Tr3icio gelöschter User
    In den Query am Ende anfügen: LIMIT 0,20
    1 Mitglieder finden den Beitrag gut.
  24. #24
    User Pic
    htdocs Mitglied
    Registriert seit
    29.04.2010
    Beiträge
    492
    Beitragswertungen
    17 Beitragspunkte
    cool dank dir lächeln

    Danke Danke
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten