IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[LDAP] Problème de tri suivant majuscule ou minuscule


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Points : 313
    Points
    313
    Par défaut [LDAP] Problème de tri suivant majuscule ou minuscule
    Bonjour,

    j'aimerais trier les résultats de mon interrogation LDAP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ordre = "sn";
    ldap_sort($ds, $sr, $ordre);
    Cela marche... mais, les noms en majuscules apparaissent (triés) avant ceux en minuscules (triés aussi).
    Comment faire pour que le tri se fasse indépendamment des majuscules et minuscules ?

    Merci d'avance.
    @+

  2. #2
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Points : 313
    Points
    313
    Par défaut
    N'auriez-vous aucune piste de recherche pour éviter cette distinction majuscules / minuscules ?

  3. #3
    Membre confirmé Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Points : 460
    Points
    460
    Par défaut
    Il ne me semble pas que ce soit directement possible ...
    cf. http://jp2.php.net/manual/en/function.ldap-sort.php

    par contre, tu peux exporter ton résultat vers une variable de type Array et là lui demander un "natural sort" : natcasesort()
    http://jp2.php.net/manual/en/function.natcasesort.php

    bon courage quoi qu'il en soit !

  4. #4
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Points : 313
    Points
    313
    Par défaut
    Merci de ta réponse.

    J'ai essayé ta fonction et cela ne me sort aucun enregistrement. Si je fais un print_r() de mon tableau, cela me retourne 1.

    Voici la structure du tableau renvoyé pas le ldap (je n'ai mis qu'un enregistrement pour simplifier) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Array ( [count] => 3 
    	[0] => Array ( 	[givenname] => Array ( 	[count] => 1 
    						[0] => Marc ) 
    			[0] => givenname 
    			[sn] => Array ( [count] => 1 
    					[0] => DUPONT ) 
    			[1] => sn 
    			[mail] => Array ( [count] => 1 
    					  [0] => marc.dupont@wanadoo.fr ) 
    			[2] => mail 
    			[telephonenumber] => Array ( [count] => 1 
    						     [0] => 01.56.25.14.18 ) 
    			[3] => telephonenumber 
    			[businesscategory] => Array ( [count] => 1 
    						      [0] => TRAVAIL ) 
    			[4] => businesscategory 
    			[uid] => Array ( [count] => 1 
    					 [0] => mdupont ) 
    			[5] => uid 
    			[count] => 6 
    			[dn] => uid=mdupont,ou=Contacts,ou=People,dc=mondomaine,dc=com ) 
    )
    J'avoue ne pas savoir comment traiter ce tableau pour l'ordonner selon le nom sans tenir compte de la casse...

  5. #5
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 500
    Points : 6 084
    Points
    6 084
    Par défaut Technique de chacal
    Je connais pas LDAP mais pour ton probleme j'aurais procédé de la manière. A utiliser si seulement tu ne trouve aucune autre solution.
    tu copies que les noms dans un nouveau tableau en minuscule. Tu utilises la fonction sort() pour trier le tableau. Tu boucles sur se nouveau tableau en faisant une comparaison entre l'ancien tableau.

    if(strtolower(nouveau_tableau_nom)==)strtolower(ancien_tableau){
    Copie dans le nouveau.
    }


    Le troisième tableau sera dans l'ordre.

    Garantie : Technique de chacal.

  6. #6
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Points : 313
    Points
    313
    Par défaut
    Merci pour ton aide. Je pense que j'utiliserai cette méthode si je n'ai vraiment aucune autre possibilité.

    Là, je suis en train de chercher dans les filtres LDAP, mais sans aucun résultat pour le moment. Je me demande si je cherche l'introuvable !

    En tout cas, je vous tiens au courant si je trouve quelque chose.
    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème comparer un string majuscule vs minuscule
    Par letal dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 13/01/2014, 12h23
  2. Tri sur majuscule et minuscule
    Par halina dans le forum VBA Access
    Réponses: 2
    Dernier message: 23/11/2007, 15h46
  3. [AJAX] Majuscule et minuscule avec ajax /!\ Problème d'autocompletion
    Par djsmallc dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 13/07/2007, 11h25
  4. problème majuscule et minuscule
    Par rdams dans le forum Requêtes
    Réponses: 4
    Dernier message: 07/10/2005, 14h45
  5. Réponses: 3
    Dernier message: 08/08/2005, 11h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo