Diskussionsgruppe: PHP
Hallo,
ich habe ein kleines Problem, ich habe über ein PHP-Script alle Benutzer aus dem LDAP abgefragt und in ein SELECT-Feld gebpackt, das Problem ist, das die einträge nicht sortiert sind. Kann mir jemand helfen?
Das eintragen in das SELECT-Feld sieht so aus:
<select name="Benutzer" size="1"> <?php $anzahl = ldap_count_entries($connectid,$search); for ($i=0; $i<$anzahl; $i++) { $name = $result[$i]["cn"][0]; echo '<option>'.$name.'</option>'; } ?> </select>
MFG Sascha
Von: Bruno_Bayano Datum: 27.04.2007, 09:39
Antwort 1
von Supermax vom 27.04.2007, 11:04
Schau dir mal die Array-Sortierungsfunktionen von PHP an, insbesondere uasort() (Sortierung mit einer benutzerdefinierten Sortierungsfunktion).
Antwort 2
von Bruno_Bayano vom 03.05.2007, 11:57
Danke, das hat mir schonmal ein bisschen weiter geholfen. Jetzt habe ich allerdings noch ein Problem, und zwar bekomme ich den sortierten Array nicht vernünftig ausgegeben, ich möchte alle Datensätze in eine Liste schreiben, allerdings schreibt er die dann nicht sortiert da rein.
Hier mal mein Quellcode:
<?php $basedn = "CN=Users,DC=domain,DC=loc"; $server = "servername"; $username = "user"; $password = "password"; $ldap_port = "389"; $filter = "(&(|(objectClass=user))(objectCategory=person)(cn=*))"; ?> <?php $connectid = @ldap_connect($server)or die("Keine Verbindung zum LDAP server möglich."); ?> <?php $binding = @ldap_bind($connectid,$username,$password) or die("Fehler beim Anmelden des Benutzers."); ?> <?php // AD auslesen $search = @ldap_search($connectid,$basedn,$filter); $result = ldap_get_entries($connectid,$search); ?>
<?php $anzahl = ldap_count_entries($connectid,$search); $arr = array(); for ($i=0; $i<$anzahl; $i++) { $name = $result[$i]["cn"][0]; array_push( $arr,$name ); } asort($arr); ?> <select name="user" size="1"> <?php for ($j=0; $j<$anzahl; $j++) { echo '<option>'.$arr[$j].'</option>'; } ?> </select>
Hat jemand von euch eine Lösung?
Antwort 3
von Bruno_Bayano vom 04.05.2007, 11:00
ich hab selbst die Lösung gefunden, aber trotzdem danke.
Die Lösung ist:
foreach($arr As $name){ echo '<option>'.$name.'</option>'; }
|
|