ilch Forum » Ilch Clan 1.1 » Module und Modifikationen » Memberliste nach Sonderrang sortieren

Geschlossen
  1. #1
    User Pic
    ---Doc--- Mitglied
    Registriert seit
    05.08.2011
    Beiträge
    218
    Beitragswertungen
    4 Beitragspunkte
    Hallo zusammen,

    die Memberliste ist bei mir so angelegt, daß die einzelnen Gruppen wie Admin, Member, Trial etc. sortiert sind.
    Innerhalb dieser Gruppen möchte ich nach Sonderrang sortieren lassen.
    Wie kann ich dies machen?
    Wäre eine einfache Möglichkeit den Sonderrängen eine Postanzahl zuzuordnen?

    Vielen Dank für Tipps.
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    Ich geh davon aus das die raenge in der db stehn dann musste einfach nur ORDER by recht aendern
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    ---Doc--- Mitglied
    Registriert seit
    05.08.2011
    Beiträge
    218
    Beitragswertungen
    4 Beitragspunkte
    Oh, auf soetwas einfaches hätte ich auch kommen können.
    Vielen Dank.
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    ---Doc--- Mitglied
    Registriert seit
    05.08.2011
    Beiträge
    218
    Beitragswertungen
    4 Beitragspunkte
    Hm, so ganz komme ich dann doch nicht darauf.
    Gruppiert ist nach Grundrecht. Da innerhalb der Grundrechtgruppen aufsteigend sortiert wird, dachte ich mal aus ASC DESC zu machen. Aber dann gibt es keine Gruppierung mehr nach Grundrechten.

    Der Code ist:
    <?php
        #   Copyright by: Manuel Staechele
        #   Support: www.ilch.de
         
         
        defined ('main') or die ( 'no direct access' );
         
        $title = $allgAr['title'].' :: User :: '.$lang['listofmembers'];
        $hmenu = $extented_forum_menu.'User <b> &raquo; </b> '.$lang['listofmembers'].$extented_forum_menu_sufix;
        $design = new design ( $title , $hmenu, 1);
        $design->header();
        $tpl = new tpl ( 'omember.htm' );
        # für die geordnete memberliste gibts keine sites!
         
        $limit = 10;  // Limit
        $page = ($menu->getA(1) == 'p' ? $menu->getE(1) : 1 );
        $MPL = db_make_sites ($page , "" , $limit , '?omember' , 'user' );
        $anfang = ($page - 1) * $limit;
         
         
        $tpl->set_out ( 'SITELINK', $MPL, 0);
         
        $filtername = isset($_GET['filtername']) ? " AND prefix_user.name LIKE '%".escape($_GET['filtername'],'string')."%'" : "";
         
        $tpl->out(0);
        # alle anzuzeigenden rechte holen:
        $qry = db_query('SELECT `id`, `name` FROM `prefix_grundrechte` WHERE `show` = 1 AND `id` <= -3 AND `id` >= -8 ORDER BY `id` ASC');
        while ($gr = db_fetch_assoc($qry)) {
        $erg = db_query("SELECT
        posts,
        icq,
        staat,
        email,
        llogin,
        prefix_user.id,
        prefix_grundrechte.name as recht_name,
        regist,
        prefix_user.name,
        recht
        FROM prefix_user
        LEFT JOIN prefix_grundrechte ON prefix_user.recht = prefix_grundrechte.id
        WHERE recht = ".$gr['id'].$filtername."
        ORDER by prefix_user.posts ASC LIMIT ".$anfang.",".$limit);
         
        # wenn die gruppe leer ist, wird sie automatisch ausgeblendet:
        if(db_num_rows($erg)==0) continue;
        $tpl->set('group_id', $gr['id']);
        $tpl->set('group_name', $gr['name']);
        $tpl->out(1);
         
        $class = '';
        while ($row = db_fetch_object($erg)) {
        if($row->icq == ""){
            $icq = "";
            } else {
            $icq = "<a href=\"http://wwp.icq.com/scripts/search.dll?to=".str_replace("-","",$row->icq)."\" target=\"_blank\"><img src=\"http://status.icq.com/online.gif?web=".str_replace("-","",$row->icq)."&img=5\" border=\"0\"></a>";
            }
            if ($class == 'Cmite') { $class = 'Cnorm'; } else { $class = 'Cmite'; }
            $ar = array ( 'NAME' => $row->name,
                            'RANG' => userrang($row->posts,$row->id),
                                            'CLASS' => $class,
                                            'POSTS' => $row->posts,
                                            'ICQ' => $icq,
                                            'UID'   => $row->id,
                                            'DATE' => date('m/d/Y',$row->regist),
                                            'GRUPE' => $row->recht_name,
                                            'STAAT' => ($row->staat!="" ? $row->staat : "na.gif"),
                                            'EMAIL' => $row->email,
                                            'LLOGIN' => date('m/d/Y <b\r> H:i',$row->llogin).' Uhr'
            );
            $tpl->set_ar_out($ar,2);
        }
        }
        $tpl->set_out('filtername',escape(isset($_GET['filtername'])?$_GET['filtername']:'','string'),3);
         
         
         
        $design->footer();
        ?>
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Mikro Mitglied
    Registriert seit
    05.10.2011
    Beiträge
    237
    Beitragswertungen
    21 Beitragspunkte
    Du kannst auch nach mehreren Spalten sortieren lassen:

    zum Beispiel:
    
    ORDER by prefix_user.posts ASC , prefix_user.recht DESC

    und so weiter.

    Wenn dir das was hilft.
    Wer Rechtschreibfehler findet darf sie behalten!
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    ---Doc--- Mitglied
    Registriert seit
    05.08.2011
    Beiträge
    218
    Beitragswertungen
    4 Beitragspunkte
    Vielen Dank.
    Nach mehreren Spalten brauchte ich gar nicht, wie sich herausstellte, ich mußte nur die Spaltenart ändern, nach der sortiert wird.

    ORDER by prefix_user.posts ASC LIMIT ".$anfang.",".$limit);

    in
    ORDER by prefix_user.spezrank ASC LIMIT ".$anfang.",".$limit);


    ändern. Aber ich suchte an der falschen Stelle.
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten