Hier kann eine Notiz zum Merk-Eintrag hinzugefügt werden (optional)
| [ Anmelden zum schreiben ] |
| Memberliste nach Sonderrang sortieren | |||
|---|---|---|---|
| ---Doc--- Mitglied
Posts: 204 |
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
Posts: 1771 |
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
Posts: 204 |
Oh, auf soetwas einfaches hätte ich auch kommen können.
Vielen Dank. |
||
| ---Doc--- Mitglied
Posts: 204 |
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> » </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
Posts: 121 |
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
Posts: 204 |
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 ] |