Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
Die Gruppe kannst du leicht abfragen. Einfach vor ORDER BY dies einfügen:
oder
Code:
WHERE u.usergroup=8 OR u.usergroup=12345
Die Sortierung ist aufwendiger, da habe ich spontan keinen Code parat.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 136
Themen: 14
Registriert seit: 14.08.2011
MyBB-Version: 1.8.6
Das hat schon mal wunderbar funktioniert. Danke!
Wegen der Sortierung wurde mir in einem anderen Forum [wo ich besagte Hilfe für den grundsätzlichen Aufbau hatte] folgendes mal vorgeschlagen, aber bei nicht funktionieren keine Rückmeldung mehr bekommen...
Da dachte ich, ich frage euch hier mal. ^^
Diesen Teil direkt nach dem Öffnen:
PHP-Code:
$sortby = $_GET['sortby'];
$ascdesc = $_GET['ascdesc'];
if(!$sortby) $sortby = "u.username";
if(!$ascdesc) $ascdesc = "ASC";
In der Abfrage wie folgt:
PHP-Code:
$registered = $db->query("SELECT * FROM mybb_users u LEFT JOIN mybb_userfields uf ON(u.uid=uf.ufid) $sortby $ascdesc");
Geht bloß leider nicht, weil dieses sortby plus ascdesc mir immer eine Fehlermeldung raushaut.
[Wie gesagt, mir wurde das vorgeschlagen, aber dann nicht mehr reagiert...]
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
So bitte NICHT, das ermöglicht
SQL-Injection. Du musst auf jeden Fall sicherstellen, dass $sortby und $ascdesc nur gültige Werte enthalten können. Aktuell kann man da alles mögliche einsetzen.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 136
Themen: 14
Registriert seit: 14.08.2011
MyBB-Version: 1.8.6
Oh! Okay! Danke für den Link! Gut zu wissen. Vielleicht hat ja sonst noch jemand eine Idee.
Könnte man das vielleicht auf die selbe Art und Weise lösen, wie zum Beispiel in der Sortierung der Threads? Im Default-Theme kann man die ja auch mit einem Klick auf "Antworten" etc. danach sortieren lassen. Ich habe leider keine Ahnung von sowas, weshalb ich da gerade nur spekulieren kann, ob man über so einen Weg da ran gehen könnte.
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
Du darfst schon mit Variablen arbeiten, aber der Inhalt muss geprüft werden, sodass nur erlaubte Werte enthalten sind.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 136
Themen: 14
Registriert seit: 14.08.2011
MyBB-Version: 1.8.6
Hallo!
Ich bin mit meiner Sortierung immer noch nicht weiter gekommen. Weiß vielleicht jemand sonst, wie man das realisieren könnte? Grundsätzlich ist nach dem Nachnamen sortiert, wie es in meiner Abfrage steht. Über Links möchte ich eben auch nach Vorname und ein paar Profilfeldern sortieren lassen.
Nach dem Versuchen mit mehreren Tutorials bin ich langsam am Ende. ^^
Viele Grüße
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
Du könntest Dir mal dieses Plugin ansehen und wie dort die Sortierung nach unterschiedlichen Kriterien umgesetzt wurde.....
https://www.mybb.de/erweiterungen/18x/pl...eitraegen/
Vielleicht hilft Dir das weiter.
Beiträge: 136
Themen: 14
Registriert seit: 14.08.2011
MyBB-Version: 1.8.6
Danke, Jockl, ich habe mich daran mal versucht, die Sortierung - denke ich - auch richtig übernommen und angepasst, aber es sortiert nichts. Dazu muss ich sagen, dass ich die Voreingestellte Sortierung auch nicht so eingefügt kriege, wie ich sie bisher hatte (den Teil mit dem Substring). Aber selbst, wenn ich das rausnehme, wird nichts weiter sortiert, wenn ich beim Alter bspw. auf den Link klicke.
PHP-Code:
if($mybb->input['action']=="einwohner")
{
$order = my_strtolower(htmlspecialchars($mybb->input['order']));
$sortby = my_strtolower(htmlspecialchars($mybb->input['sortby']));
switch($order)
{
case "desc":
$order = "asc";
$order_by = "desc";
$oppsort = $lang->list_asc;
$oppsortnext = "asc";
break;
default:
$order = "desc";
$order_by = "asc";
$oppsort = $lang->list_desc;
$oppsortnext = "desc";
break;
}
switch($sortby)
{
case "Vorname":
$sort_field = "u.username";
break;
case "Atter":
$sort_field = "uf.fid9";
break;
case "Beruf":
$sort_field = "uf.fid13";
break;
case "Wohnort":
$sort_field = "uf.fid11";
break;
case "Beziehung":
$sort_field = "uf.fid14";
break;
case "Abschlussjahrgang":
$sort_field = "uf.fid8";
break;
}
eval("\$orderarrow['$sortby'] = \"".$templates->get("listen_orderarrow")."\";");
$bit = "";
$registered = $db->query("SELECT * FROM mybb_users u LEFT JOIN mybb_userfields uf ON(u.uid=uf.ufid) WHERE (u.usergroup > '7') OR (u.additionalgroups > '7') ORDER BY SUBSTRING_INDEX(username, ' ', -1), u.username ASC");
while($row=$db->fetch_array($registered))
{
$namen = explode(" ", $row[username]);
$nachname = "$namen[1]";
if(count($namen) == "3") $nachname = "$namen[1] $namen[2]";
$altbg = alt_trow();
eval("\$einbit .= \"".$templates->get("listen_einwohner_bit")."\";");
}
eval("\$menu .= \"".$templates->get("listen_nav")."\";");
eval("\$page = \"".$templates->get("listen_einwohner")."\";");
output_page($page);
}
Nur eine Vermutung, aber bei dir steht: case "Atter": nicht Alter.
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
19.01.2016, 22:02
(Dieser Beitrag wurde zuletzt bearbeitet: 19.01.2016, 22:02 von Jockl.)
(17.01.2016, 21:01)SCOTTISH. schrieb: ....ich habe mich daran mal versucht, die Sortierung - denke ich - auch richtig übernommen und angepasst, aber es sortiert nichts. .... Aber selbst, wenn ich das rausnehme, wird nichts weiter sortiert, wenn ich beim Alter bspw. auf den Link klicke.
Lässt sich "es sortiert nichts" evtl. etwas genauer beschreiben?
Mit den wenigen Code-Zeilen kann man aber auch recht wenig sagen. Wie sehen Deine Templates und damit die Links für die verschiedenen Sortierungen aus? Evtl. setzt Du hier mal den kompletten Code und auch die Templates ein. Dann kann man sich einen besseren Überblick verschaffen.