Problème suppression d'une partie de chaîne (SQL)

willisindaplace Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
Heliotte Messages postés 1561 Statut Membre -
Bonjour à tous,
Je suis face à un problème sur lequel je n'arrive pas à passer.
J'ai installer une solution GLPI sur le parc réseau de l'entreprise où je fais mon stage, et j'ai exploité la liaison d'annuaire LDAP pour la création des utilisateurs.
Aucun soucis jusque là, mais cet importation me créer des utilisateurs de type :

Identifiant : utilisateur@domaine.local      
MDP  : ******** 


Hors par soucis de simplicité pour les utilisateurs et par ergonomie j'aimerais tapper dans la base SQL pour retirer le '@domaine.local' au nom de session des utilisateurs, pour qu'ils n'est pas qu'a taper leur nom de compte pour se connecter.

Pour le moment ce que j'ai :

             _______________      
            | TABLE glpi_users |      
            -------------------------      
| nomdesession         |    nom    |  prénom |                         
jdupon@domaine.local    |  dupon   | jacques      
pzoulou@domaine.local   | zoulou   | pierre      
rdurand@domaine.local   | durand  | roger


Ce que j'aimerais avoir :

       _______________      
       | TABLE glpi_users |      
       -------------------------      
     |nomdesession|    nom    |  prénom |                         
      jdupon       |  dupon   | jacques      
     pzoulou      | zoulou   | pierre      
     rdurand      | durand  | roger


Je sais pas si je me suis bien fais comprendre, s'ils vous faut d'autre indications n'hésitez pas.

3 réponses

  1. Heliotte Messages postés 1561 Statut Membre 92
     
    Bonsoir willisindaplace,

    Ne serait-ce pas mieux de modifier la présentation lors de l'affichage ?
    Dans ce cas, if suffit de 'tronquer' la variable à la position de '@domaine.local'.
    0
    1. willisindaplace Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour !
      Là où je me suis mal exprimé. Je voulais MODIFIER les données de ma table, et non pas juste les AFFICHER de manière formaté (sans le @domaine.local).
      En cherchant un peu et en me remémorant mes vieux cours sur le SQL j'ai réussi à pondre ça, qui fonctionne parfaitement :

      UPDATE glpi_users 
      SET name = REPLACE(name,'@domaine.local', '')  
      WHERE name LIKE '%@domaine.local%'; 
      


      Merci tout de même de ta réponse, c'est sympa de voir qu'on peut compter sur la communauté en cas de soucis !

      Cordialement, Will' !
      0
  2. Heliotte Messages postés 1561 Statut Membre 92
     
    Bonjour Will',

    Plusieurs possibilités:

    1° une boucle sur tous les enregistrement, récupérer les infos, tronquer la chaîne et renvoyer cette chaîne 'raccourcie'.

    2° renommer la table, copier la table directement en lui donnant le nom correct et en supprimant la fin de chaque 'chaîne', supprimer la table de départ .. ou mieux, vérifier que la copie est correcte, puis supprimer la table de départ.

    Espérant t'avoir été utile,
    Cordialement.
    0
  3. willisindaplace Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
     
    Rebonjour !
    Par le petit morceau de code que j'ai coller dans le message commentant ta 1ère réponse j'ai résolu mon problème !

    UPDATE glpi_users
    SET name = REPLACE(name,'@domaine.local', '') 
    WHERE name LIKE '%@domaine.local%';


    Je n'ai plus qu'à trouver un moyen d'intégrer ça à un bouton sur GLPI pour rendre le lancement du script plus simple et le tour sera joué ! ;)
    0
    1. Heliotte Messages postés 1561 Statut Membre 92
       
      Ok.

      Bonne recherche et @ très bientôt.
      0