» Forum » Clanscript » Module und Modifikationen » Memberliste nach Sonderrang sortieren
  Mitglieder   |   Gallery   |   FAQ's   |   Regeln

[ Anmelden zum schreiben ]

Memberliste nach Sonderrang sortieren
---Doc---
Mitglied
4 Beitragspunkte
Posts: 204

0 Mitglieder finden den Beitrag gut.

Merkliste 28.10.2011 - 11:06:15     Zitieren
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.
Siggi
Mitglied
10 Beitragspunkte
Posts: 1771

0 Mitglieder finden den Beitrag gut.

Merkliste 28.10.2011 - 11:37:21     Zitieren
Ich geh davon aus das die raenge in der db stehn dann musste einfach nur ORDER by recht aendern


Wie poste ich falsch?
---Doc---
Mitglied
4 Beitragspunkte
Posts: 204

0 Mitglieder finden den Beitrag gut.

Merkliste 28.10.2011 - 12:27:42     Zitieren
Oh, auf soetwas einfaches hätte ich auch kommen können.
Vielen Dank.
---Doc---
Mitglied
4 Beitragspunkte
Posts: 204

0 Mitglieder finden den Beitrag gut.

Merkliste 30.10.2011 - 16:08:05     Zitieren
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();
    ?>
Mikro
Mitglied
5 Beitragspunkte
Posts: 121

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 30.10.2011 - 17:23:34     Zitieren
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!
---Doc---
Mitglied
4 Beitragspunkte
Posts: 204

0 Mitglieder finden den Beitrag gut.

Merkliste 30.10.2011 - 17:53:08     Zitieren
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.

[ Anmelden zum schreiben ]