gelöst Benutzer nach PHP LDAP Abfrage sortieren
Hallo,
ich habe ein kleines Problem, ich habe über ein PHP-Script alle Benutzer aus dem LDAP abgefragt und in ein SELECT-Feld gepackt, 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
ich habe ein kleines Problem, ich habe über ein PHP-Script alle Benutzer aus dem LDAP abgefragt und in ein SELECT-Feld gepackt, 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
10 Antworten
- LÖSUNG SteinBeiser schreibt am 27.04.2007 um 10:09:00 Uhr
- LÖSUNG Bayano schreibt am 27.04.2007 um 11:58:11 Uhr
- LÖSUNG SteinBeiser schreibt am 27.04.2007 um 12:09:18 Uhr
- LÖSUNG Bayano schreibt am 30.04.2007 um 15:14:22 Uhr
- LÖSUNG Dani schreibt am 30.04.2007 um 16:35:30 Uhr
- LÖSUNG Bayano schreibt am 03.05.2007 um 07:53:13 Uhr
- LÖSUNG SteinBeiser schreibt am 03.05.2007 um 13:43:36 Uhr
- LÖSUNG Bayano schreibt am 03.05.2007 um 14:58:50 Uhr
- LÖSUNG SteinBeiser schreibt am 03.05.2007 um 16:16:13 Uhr
- LÖSUNG Bayano schreibt am 04.05.2007 um 10:53:47 Uhr
- LÖSUNG SteinBeiser schreibt am 03.05.2007 um 16:16:13 Uhr
- LÖSUNG Bayano schreibt am 03.05.2007 um 14:58:50 Uhr
- LÖSUNG SteinBeiser schreibt am 03.05.2007 um 13:43:36 Uhr
- LÖSUNG Bayano schreibt am 03.05.2007 um 07:53:13 Uhr
- LÖSUNG Dani schreibt am 30.04.2007 um 16:35:30 Uhr
- LÖSUNG Bayano schreibt am 30.04.2007 um 15:14:22 Uhr
- LÖSUNG SteinBeiser schreibt am 27.04.2007 um 12:09:18 Uhr
- LÖSUNG Bayano schreibt am 27.04.2007 um 11:58:11 Uhr
LÖSUNG 27.04.2007 um 10:09 Uhr
Nicht sofort in select reinhauen sonder erst in ein array, dieses sortieren und dann select aufbauen.
LÖSUNG 27.04.2007 um 11:58 Uhr
Danke für den Tipp, kannst du mir vielleicht auch mal ein Code-Beispiel geben? Weil mit Array´s und dem Sortieren kenne ich mich nicht so gut aus. Ich würde nur den Bubblesort kennen, aber der ist bestimmt zu langsam, das sind ca 2000 User.
LÖSUNG 27.04.2007 um 12:09 Uhr
01.
//leeres array anlegen:
02.
$arr = array();
03.
04.
//array füttern:
05.
array_push( $arr, $entry );
06.
07.
//array sortieren:
08.
asort( $arr );
LÖSUNG 30.04.2007 um 15:14 Uhr
Also das hat jetzt alles bei mir geklappt, mit print_r($array) kan ich auch den Sortieren Array ausgeben. Allerdings wenn ich dein sortieren Array in einer Liste ausgeben will klappt das nicht.
Mein Programmcode sieht so aus:
Aber so gibt er mir nicht die Sortiete Liste aus, sondern die unsortierte. Kann mir jemand helfen?
Mein Programmcode sieht so aus:
01.
for ($j=0; $j<$anzahl; $j++)
02.
{
03.
echo "<option>".$array[$j]."</option>";
04.
}
LÖSUNG 30.04.2007 um 16:35 Uhr
Hi ihr Beide,
ich habe mir erlaubt, eure beiden Quellcodes in ein einen Codebock zustecken. So dass es übersichtlich aussieht und optisch natürlich auch.
Zu deinem Problem:
Poste doch ein bisschen mehr als deine for - Schleife, denn der Fehler muss vorher eingebaut sein.
Gruß
Dani
ich habe mir erlaubt, eure beiden Quellcodes in ein einen Codebock zustecken. So dass es übersichtlich aussieht und optisch natürlich auch.
Zu deinem Problem:
Poste doch ein bisschen mehr als deine for - Schleife, denn der Fehler muss vorher eingebaut sein.
Gruß
Dani
LÖSUNG 03.05.2007 um 07:53 Uhr
Ok, dann poste ich mal meine Quellcode:
Das ist es. Ich hoffe ihr könnt mir dabei weiterhelfen.
01.
02.
03.
$basedn = "CN=Users,DC=domain,DC=loc";
04.
$server = "servername";
05.
$username = "user";
06.
$password = "password";
07.
$ldap_port = "389";
08.
$filter = "(&(|(objectClass=user))(objectCategory=person)(cn=*))";
09.
?>
10.
11.
<?php
12.
$connectid = @ldap_connect($server)or die("Keine Verbindung zum LDAP server möglich.");
13.
?>
14.
15.
<?php
16.
$binding = @ldap_bind($connectid,$username,$password) or die("Fehler beim Anmelden des Benutzers.");
17.
?>
18.
19.
<?php
20.
// AD auslesen
21.
$search = @ldap_search($connectid,$basedn,$filter);
22.
$result = ldap_get_entries($connectid,$search);
23.
?>
24.
25.
<?php
26.
$anzahl = ldap_count_entries($connectid,$search);
27.
$arr = array();
28.
for ($i=0; $i<$anzahl; $i++) {
29.
$name = $result[$i]["cn"][0];
30.
31.
array_push( $arr,$name );
32.
}
33.
asort($arr);
34.
?>
35.
<select name="user" size="1">
36.
<?php
37.
for ($j=0; $j<$anzahl; $j++) {
38.
echo '<option>'.$arr[$j].'</option>';
39.
}
40.
?>
41.
</select>
42.
Das ist es. Ich hoffe ihr könnt mir dabei weiterhelfen.
LÖSUNG 03.05.2007 um 13:43 Uhr
sorry aber nachdem ich meine serverdaten fürs connect eingetragen hatte
funktioniert das script bis auf ein "?>" zuviel.
funktioniert das script bis auf ein "?>" zuviel.
LÖSUNG 03.05.2007 um 14:58 Uhr
Hmm, komisch.
bei gibt er mit dem Befehl "print_r(arr);" auch die richtige Sortierung aus. Allerdings mit der Schleife wo ich die Listebox/Combobox fülle, gibt er mir immer den unsortierten Array aus.
Ich vermute das der Array nur temporär sortiert wird, und nicht die Indexwerte geändert werden. Und da ich in der Schleife über die Indexwerte gehe geht das so nicht.
Kann das möglich sein?
Ich weiss nämlich so langsam nicht mehr weiter.
bei gibt er mit dem Befehl "print_r(arr);" auch die richtige Sortierung aus. Allerdings mit der Schleife wo ich die Listebox/Combobox fülle, gibt er mir immer den unsortierten Array aus.
Ich vermute das der Array nur temporär sortiert wird, und nicht die Indexwerte geändert werden. Und da ich in der Schleife über die Indexwerte gehe geht das so nicht.
Kann das möglich sein?
Ich weiss nämlich so langsam nicht mehr weiter.
LÖSUNG 03.05.2007 um 16:16 Uhr
sorry bin mit blidheit geschlagen bei mich auch unsortiert.
Mit folgender schleife wirds sortiert ausgegeben.
foreach( $arr as $j ) {
echo '<option>'.$j.'</option>';
}
Mit folgender schleife wirds sortiert ausgegeben.
foreach( $arr as $j ) {
echo '<option>'.$j.'</option>';
}
LÖSUNG 04.05.2007 um 10:53 Uhr
Besten dank, bei mir funktioniert es jetzt auch.
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte