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

PHP & Base de données Discussion :

[SQL] Séparer Nom Prénom placés dans une cellule unique [Fait]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut [SQL] Séparer Nom Prénom placés dans une cellule unique
    Bonjour,

    Quelqu'un a une fonction qui permet de séparer dans une collonne MySQL un NOM et un Prénom ?

    Je recherche la même chose ce expliquez sous ce post mais en PHP. (http://www.developpez.net/forums/sho...03&postcount=8)

    Merci d'avance

    Arnaud

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Je ne vois pas de fonction spécifiques pour faire ca, mais tu peux choisir un caractère spécial pour cette séparation comme l'* ou le / qui n'existent pas dans un nom ou un prénom (enfin je ne crois pas ).
    Et lors de l'insertion tu fais une concaténation a la lecture tu utilises split!

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut
    moué non, je ne peux pas rajouter de | ou / entre les nom et prénom car les données me sont impossé sous cette forme.

    Dans le lien donné, la macro fonctionne parfaitement, voila pourquoi j'aurai bien aimé trouvé la même chose en PHP...

    Merci encore pour ton aide !

  4. #4
    Membre habitué
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Par défaut
    salut! si j'ai bien compris tu veux séparer le nom et le prénom stockés dans une colone sql
    tu peux tout simplement faire un split de l'espace entre le nom et le prenom

    $liste=split(' ',$ta_colone_NOM_PRENOM);
    $liste[0] contiendra le nom,
    $liste[1] contiendra le prénom.

    Citation Envoyé par arnaudperfect
    moué non, je ne peux pas rajouter de | ou / entre les nom et prénom car les données me sont impossé sous cette forme.

    Dans le lien donné, la macro fonctionne parfaitement, voila pourquoi j'aurai bien aimé trouvé la même chose en PHP...

    Merci encore pour ton aide !

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    C'est plus un travail pour les expressions régulières. Voilà pour l'idée :
    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
    23
    24
    <?php
    $noms = array(
        'DUPONT DUPOND Charles Henri',
        'DUPONT DUPOND Charles-Henri',
        'DUPONT-DUPOND Charles-Henri',
        'PIERROT Jean-Jaques',
        'NOËL Robet',
        'NOËL BAPTISTE Pierre',
        'NOËL-BAPTISTE Pierre',
    );
     
    function extraire_nom_prenom($string) {
        if (preg_match("#((?:\b[[:upper:]'\s-]+\b)+)\s+((?:\b[[:upper:]][[:lower:]'\s-]+\b)+)#", $string, $m)) {
            return array('nom' => $m[1], 'prenom' => $m[2]);
        }
        return FALSE;
    }
     
    header('Content-type: text/plain');
    foreach ($noms as $n) {
        $res = extraire_nom_prenom($n);
        echo ($res ? print_r($res, TRUE) : 'KO') . PHP_EOL;
    }
    ?>
    Résultat :
    Array
    (
    [nom] => DUPONT DUPOND
    [prenom] => Charles Henri
    )

    Array
    (
    [nom] => DUPONT DUPOND
    [prenom] => Charles-Henri
    )

    Array
    (
    [nom] => DUPONT-DUPOND
    [prenom] => Charles-Henri
    )

    Array
    (
    [nom] => PIERROT
    [prenom] => Jean-Jaques
    )

    Array
    (
    [nom] => NOËL
    [prenom] => Robet
    )

    Array
    (
    [nom] => NOËL BAPTISTE
    [prenom] => Pierre
    )

    Array
    (
    [nom] => NOËL-BAPTISTE
    [prenom] => Pierre
    )

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Par défaut
    la j'avoue julp, tres fort...
    ce serais déplacé de te demander de nous expliquer tout ca ? a oui encore une fois, j'aime beaucoup, compact et complet, tres php5 (enfin je crois), mérite de s'y attarder.

  7. #7
    Nouveau candidat au Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Décembre 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2023
    Messages : 2
    Par défaut
    Citation Envoyé par julp Voir le message
    C'est plus un travail pour les expressions régulières. Voilà pour l'idée :
    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
    23
    24
    <?php
    $noms = array(
        'DUPONT DUPOND Charles Henri',
        'DUPONT DUPOND Charles-Henri',
        'DUPONT-DUPOND Charles-Henri',
        'PIERROT Jean-Jaques',
        'NOËL Robet',
        'NOËL BAPTISTE Pierre',
        'NOËL-BAPTISTE Pierre',
    );
     
    function extraire_nom_prenom($string) {
        if (preg_match("#((?:\b[[:upper:]'\s-]+\b)+)\s+((?:\b[[:upper:]][[:lower:]'\s-]+\b)+)#", $string, $m)) {
            return array('nom' => $m[1], 'prenom' => $m[2]);
        }
        return FALSE;
    }
     
    header('Content-type: text/plain');
    foreach ($noms as $n) {
        $res = extraire_nom_prenom($n);
        echo ($res ? print_r($res, TRUE) : 'KO') . PHP_EOL;
    }
    ?>
    Résultat :
    Bonjour,

    j'ai un souci avec cette fonction, elle bloque sur les prénoms avec des accents (exemple Théo : je récupère Th).
    Vous avez une idée ?

    Merci

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/04/2008, 14h31
  2. ouverture d'un classeur dont son nom se trouve dans une cellule
    Par mosta2010 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/02/2008, 16h55
  3. [VBA-E] Séparer Nom Prénom placés dans une cellule unique
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/04/2007, 20h23
  4. [VBA]Séparer le Nom et le Prénom placés dans une cellule unique
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 10/04/2007, 10h34
  5. ASP/ SQL Server : resultat de RS dans une cellule.
    Par joe_le_mort dans le forum ASP
    Réponses: 2
    Dernier message: 11/08/2005, 13h26

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