Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Benutzer nach PHP LDAP Abfrage sortieren

Frage Entwicklung PHP

Mitglied: Bayano

Bayano (Level 1) - Jetzt verbinden

27.04.2007, aktualisiert 04.05.2007, 9363 Aufrufe, 10 Kommentare

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>

Mit freundlichen Grüßen
Sascha
Mitglied: SteinBeiser
27.04.2007 um 10:09 Uhr
Nicht sofort in select reinhauen sonder erst in ein array, dieses sortieren und dann select aufbauen.
Bitte warten ..
Mitglied: Bayano
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.
Bitte warten ..
Mitglied: SteinBeiser
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 );
selfPHP und selfHTML sind für sowas ne grosse hilfe.
Bitte warten ..
Mitglied: Bayano
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:
01.
for ($j=0; $j<$anzahl; $j++)  
02.
03.
  echo "<option>".$array[$j]."</option>";                    
04.
}
Aber so gibt er mir nicht die Sortiete Liste aus, sondern die unsortierte. Kann mir jemand helfen?
Bitte warten ..
Mitglied: Dani
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
Bitte warten ..
Mitglied: Bayano
03.05.2007 um 07:53 Uhr
Ok, dann poste ich mal meine Quellcode:

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.
Bitte warten ..
Mitglied: SteinBeiser
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.
Bitte warten ..
Mitglied: Bayano
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.
Bitte warten ..
Mitglied: SteinBeiser
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>';
}
Bitte warten ..
Mitglied: Bayano
04.05.2007 um 10:53 Uhr
Besten dank, bei mir funktioniert es jetzt auch.
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...