Sortierhilfe gesucht (PHP)
am 10.06.2008 - 11:15 Uhr in
Hallo zusammen,
ich weiß das Thema passt nicht so 100%ig, aber vllt kann mir doch jemand helfen. Ich lasse auf unserer Drupalseite Userliste direkt via PHP generieren, abhängig von der ID. Das Problem ist das die Listen eben auch ID-sortiert ausgegeben werden, ich würde sie aber gern am Namen alphabetisch ausrichten lassen, angefangen bei a, endend bei z.
Leider fehlt mir das PHP-Verständnis komplett (ein Wunder das ich bis hierher gekommen bin), und da mir hier schon mal geholfen wurde, kann mir vllt auch diesmal jemand mit Rat und tat zur Seite stehen.
Der Code steht in einer angelegten Seite die ein eigenes Template hat, und sieht so aus:
$rid = 27;
print('<table width="623" border="0" cellspacing="0" cellpadding="0">');
$sql = "SELECT u.uid, u.name FROM {users} u INNER JOIN {users_roles} ur ON u.uid=ur.uid WHERE ur.rid = $rid";
$result = pager_query($sql, 50);
while ($account = db_fetch_object($result)) {
$account = user_load(array('uid' => $account->uid));
if($account->picture){$account->picture = '<a href="?q=user/'.$account->uid.'"><img src="/'.$account->picture.'" height="110" width="100" alt="'.$account->name.'""></a>';}
else{$account->picture = '<a href="?q=user/'.$account->uid.'">- kein Avatar -</a>';}
print('<tr>'
. '<td valign="middle" width="108" height="20" style="border-bottom:1px dotted #8e7e6b;"><strong><a class="prf4" href="?q=user/'.$account->uid.'">' . $account->name . '</a></strong></td>'
. '<td valign="middle" width="93" style="border-bottom:1px dotted #8e7e6b;"><span style="color:#7c7360;">' . $account->profile_charname. '</span></td>'
. '<td valign="middle" width="74" style="border-bottom:1px dotted #8e7e6b;">' . $account->profile_volk . '</td>'
. '<td valign="middle" width="160" style="border-bottom:1px dotted #8e7e6b;">' . $account->profile_klasse . '</td>'
. '<td valign="middle" width="41" style="border-bottom:1px dotted #8e7e6b;"><div style="text-align:center; padding-right:5px;">' . $account->profile_stufe . '</div></td>'
. '<td valign="middle" width="97" style="border-bottom:1px dotted #8e7e6b;">' . $account->profile_craft2 . '</td>'
. '<td valign="middle" width="50" style="border-bottom:1px dotted #8e7e6b;"><a href="?q=user/'.$account->uid.'"><strong>Profil</strong></a></td>'
. '</tr>');
}
print("</table>\n");
?>
Sehen kann man es auch hier: Mitgliederliste
- Anmelden oder Registrieren um Kommentare zu schreiben
darf ich eine ganz doofe
am 10.06.2008 - 12:28 Uhr
darf ich eine ganz doofe Frage stellen: Warum verwendest du dazu nicht views? Views ist genau dafür gedacht und erspart dir solche Sachen.
Um deine Frage doch noch zu beantworten: google mal nach SQL ORDER BY ...
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
Weil ich das
am 10.06.2008 - 12:38 Uhr
Weil ich das Standard-Profil-System verwendet habe, und dort etliche zusätzliche Felder erstellt habe, und ich auf diese zumindest meiner derzeitigen Kenntnis nach nicht mit Views zugreifen kann, was ich aber für die Mitgliederlisten brauche. Ich war aber schon zu weit um noch auf ein anderes Profilsystem zurück zu greifen, es wäre am Ende zu zeitaufwendig gewesen. So geht es ja, und es ist auch alles fertig, nur stimmt eben die Sortierung nicht...
Schlagt mich wenn ich mit meiner Erkenntnis falsch liege! Das mit order by werde ich mir mal ansehen, vielen Dank Rapsli. :)
Warum verwendest Du nicht das Modul "User List"?
am 10.06.2008 - 12:57 Uhr
was ich aber für die Mitgliederlisten brauche
Warum verwendest Du nicht das Modul "User List"?
Arbeitet mit dem normalen Userprofil zusammen. Hat eigene Themefunktionen fuer die Listenanzeige.
Erspart Dir vermutlich Deinen eigenen SQL und sonstigen Code.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Tabelle, die ausgegeben wird per JS sortierbar machen...
am 10.06.2008 - 13:29 Uhr
...ich finde auch die Möglichkeit interessant, die Tabelle, die ausgegeben wird einfach per Javascript sortierbar machen zu lassen. Damit erschlägt man dann im Prinzip auch alle potentiellen Wünsche.
siehe dazu:
http://www.kryogenix.org/code/browser/sorttable/
Hiermit schlage ich Dich.
am 10.06.2008 - 14:00 Uhr
etliche zusätzliche Felder erstellt habe, und ich auf diese zumindest meiner derzeitigen Kenntnis nach nicht mit Views zugreifen kann
Das hat nichts mit Deiner derzeitigen Kenntnissen zu tun. Views kann nicht auf die normalen Profilfelder zugreifen - egal was man mit dem normalen Userprofil macht.
... um noch auf ein anderes Profilsystem zurück zu greifen, es wäre am Ende zu zeitaufwendig gewesen
Hiermit schlage ich Dich.
Selbst wenn damit ein gewisser Zeitaufwand verbunden ist so gleichen die Vorteile der Verwendung von beispielsweise "Node Profile" diesen mehr als aus. Das um so mehr je anspruchsvoller der gewuenschte Umgang mit einem Userprofil ist.
Sehe es doch so.
In der Zeit wo Du Dich Jetzt gerade mit dem normalen Profil abmuehst haettest Du bereits eine alternative Profil-Loesung aufgesetzt. Oder?
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
quiptime schrieb Zitat: In
am 10.06.2008 - 14:35 Uhr
In der Zeit wo Du Dich Jetzt gerade mit dem normalen Profil abmuehst haettest Du bereits eine alternative Profil-Loesung aufgesetzt. Oder?
ja und nein. Das ganze wird dadurch komplexer. Sicher, wenn man in Zukunft weitere Features plant (z.B. Nutzer können ein PDF hochladen oder solche Sachen), so ist man sicher mit nodeprofile besser beraten. Wenn diese Liste jedoch etwas einmaliges ist und kaum neue Features und Wünsche hinzukommen, so würde ich persönlich auch den minimalistischen Ansatz wählen.
Problem ist natürlich, dass man nie genau wissen kann, was für Wünsche in Zukunft noch hinzukommen und von daher dieses Argument auch ein bisschen zu relativieren ist und dann wiederum kann und muss man auch nicht von Anfang an, eine so generische und flexible Lösung wählen, dass am Schluss immer noch alles machbar ist.
Wie immer ... ein Abwägen von Pros und Kontras.
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
Drupal's normales Userprofil ist nicht wirklich skalierbar
am 10.06.2008 - 15:15 Uhr
Wenn Fragen von Skalierbarkeit eine Rolle spielen sollte man bei Userprofilen genau abwaegen welchen Weg man einschlaegt.
Drupal's normales Userprofil ist nicht wirklich skalierbar wenn es um mehr geht als nur gethemte Profil-Ansichten oder eine erweiterte Userliste oder eine erweiterte Usersuche.
Wenn erst mal 100 User oder mehr registriert sind und man stellt dann das Profil-System um?
Userprofile mit "Node Profile" und "CCK" zu initialisieren ist nun wirklich keine Aufgabe.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Wenn du wirklich meinst,
am 10.06.2008 - 15:24 Uhr
Wenn du wirklich meinst, dass du das normalen Profil brauchst, dann
<?php
$sql = "SELECT u.uid, u.name FROM {users} u INNER JOIN {users_roles} ur ON u.uid=ur.uid WHERE ur.rid = $rid ORDER BY u.name ASC";
?>
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
Hi dereine :-) ich gruesse Dich
am 10.06.2008 - 15:28 Uhr
Hi dereine,
:-) ich gruesse Dich,
Wenn gar nix mehr geht dann geht fast immer ein SQL Statement.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.