Script qui découpe le nom et prénom en php
                    
        
     
             
                    beta.a
    
        
    
                    Messages postés
            
                
     
             
            31
        
            
                                    Statut
            Membre
                    
                -
                                     
beta.a Messages postés 31 Statut Membre -
        beta.a Messages postés 31 Statut Membre -
        Urgent : 
Salut,svp aider moi
j'ai une liste qui contient le nom et prénom mais la colonne nom contient un nom complet et la colonne prenom vide dans la base, comment je peut découper le nom complet en nom et prénom
la raquette et le suivante : "select nom,prenom from etudiant";
                
            
                
    
    
    
        Salut,svp aider moi
j'ai une liste qui contient le nom et prénom mais la colonne nom contient un nom complet et la colonne prenom vide dans la base, comment je peut découper le nom complet en nom et prénom
la raquette et le suivante : "select nom,prenom from etudiant";
        A voir également:         
- Script qui découpe le nom et prénom en php
- Facebook recherche par nom et prénom - Guide
- Script vidéo youtube - Guide
- Optimisation découpe panneau gratuit - Télécharger - Outils professionnels
- Excel fusionner 2 colonnes nom prénom - Guide
- Découpe photo instagram - Guide
2 réponses
                        
                    Bonjour,
Ta question concerne la requête SQL ( avec quel SGBD ? ) ou le code PHP ??
Sachant que dans les deux cas tu peux faire un SPLIT (ou explode) de ta chaine.
Dans la requête tu peux utiliser, par exemple : https://sql.sh/fonctions/substring
 
 
                
                
    
                Ta question concerne la requête SQL ( avec quel SGBD ? ) ou le code PHP ??
Sachant que dans les deux cas tu peux faire un SPLIT (ou explode) de ta chaine.
Dans la requête tu peux utiliser, par exemple : https://sql.sh/fonctions/substring
                        
                    Salut jordane,
j’applique 2 requête sur mon base mais il y'a une problème, j'ai un nom (JEAN MARIA laprov)
Lorsque j'applique : UPDATE ca_etudiants as t1 SET t1.prenom = (SELECT SUBSTRING_INDEX(nom, ' ', -1) from (SELECT * FROM ca_etudiant) as t2 WHERE t1.id_etudiant=t2.id_etudiant)
puis :
UPDATE ca_etudiants as t1 SET t1.nom = (SELECT LEFT(t1.nom,LOCATE(' ',t1.nom) - 1) from (SELECT * FROM ca_etudiants) as t2 WHERE t1.id_etudiant=t2.id_etudiants)
le découpage de nom et prénom cava mais dans le nouvel nom est "JEAN" et le nouvel prénom est laprov, il manque MARIA qui sont disparut.
comment je peut le faire si on veulent découpé selon le majuscule et le minuscule?
    
                j’applique 2 requête sur mon base mais il y'a une problème, j'ai un nom (JEAN MARIA laprov)
Lorsque j'applique : UPDATE ca_etudiants as t1 SET t1.prenom = (SELECT SUBSTRING_INDEX(nom, ' ', -1) from (SELECT * FROM ca_etudiant) as t2 WHERE t1.id_etudiant=t2.id_etudiant)
puis :
UPDATE ca_etudiants as t1 SET t1.nom = (SELECT LEFT(t1.nom,LOCATE(' ',t1.nom) - 1) from (SELECT * FROM ca_etudiants) as t2 WHERE t1.id_etudiant=t2.id_etudiants)
le découpage de nom et prénom cava mais dans le nouvel nom est "JEAN" et le nouvel prénom est laprov, il manque MARIA qui sont disparut.
comment je peut le faire si on veulent découpé selon le majuscule et le minuscule?
    Bien sûr que ça fonctionnera pour ce cas là...
Mais pas pour les personnes n'ayant qu'un seul prénom ..et ceux ayant un tiret (pour les prénoms composés)
J'en reste au regex...
https://dev.mysql.com/doc/refman/8.0/en/regexp.html#function_regexp-substr
    Mais pas pour les personnes n'ayant qu'un seul prénom ..et ceux ayant un tiret (pour les prénoms composés)
J'en reste au regex...
https://dev.mysql.com/doc/refman/8.0/en/regexp.html#function_regexp-substr
    Bonjour et merci jordane45 pour votre effort ,je trouve une solution mais reste une problème :
Warning: fopen(C:\xampp\htdocs\cans-noms-traites.txt) [function.fopen]: failed to open stream: No such file or directory in D:\xampp\htdocs\correction-cans.php on line 13
Warning: fopen(C:\xampp\htdocs\cans-noms-non-traites.txt) [function.fopen]: failed to open stream: No such file or directory in D:\xampp\htdocs\correction-cans.php on line 14
Warning: fwrite() expects parameter 1 to be resource, boolean given in D:\xampp\htdocs\correction-cans.php on line 46
par contre au niveau base de donnée sera changer
    Warning: fopen(C:\xampp\htdocs\cans-noms-traites.txt) [function.fopen]: failed to open stream: No such file or directory in D:\xampp\htdocs\correction-cans.php on line 13
Warning: fopen(C:\xampp\htdocs\cans-noms-non-traites.txt) [function.fopen]: failed to open stream: No such file or directory in D:\xampp\htdocs\correction-cans.php on line 14
Warning: fwrite() expects parameter 1 to be resource, boolean given in D:\xampp\htdocs\correction-cans.php on line 46
par contre au niveau base de donnée sera changer
    mon code :
<?php
define('SQL_HOST', 'localhost');
define('SQL_DBNAME', 'etudiant');
define('SQL_USERNAME', 'root');
define('SQL_PASSWORD', '');
define('MYSQL_PORT', '8080');
define('FICHIER_NOMS_TRAITES','C:\xampp\htdocs\etudiant-noms-traites.txt');
define('FICHIER_NOMS_NON_TRAITES','C:\xampp\htdocs\etudiant-noms-non-traites.txt');
$fichierNomsTraites = fopen(FICHIER_NOMS_TRAITES,'w');
$fichierNomsNonTraites = fopen(FICHIER_NOMS_NON_TRAITES,'w');
$pdo = new PDO('mysql:host='.SQL_HOST.';port='.MYSQL_PORT.';dbname='.SQL_DBNAME, SQL_USERNAME, SQL_PASSWORD);
$stmt = $pdo->query("SELECT * from ca_etudiant");
$stmt->execute();
$etudiant = $stmt->fetchAll(PDO::FETCH_OBJ);
$i = 0;
foreach($etudiant as $c){
$matches = array();
preg_match("/([A-Z][A-Z]+\s)+/", $c->nom, $matches, PREG_OFFSET_CAPTURE);
 
if(isset($matches[0][0])){
$nom = trim($matches[0][0]);
  
$prenom = trim(str_replace($nom,"",$c->nom));
  
  
$q = "UPDATE ca_etudiant SET nom = ?, prenom=? WHERE id_etudiant=?";
$stmt = $pdo->prepare($q);
$stmt->bindValue(1,$nom);
$stmt->bindValue(2,$prenom);
$stmt->bindValue(3,$c->id_etudiant);
$stmt->execute();
  
fwrite($fichierNomsTraites,'ID: '.$c->id_etudiant.' - '.$c->nom. ' *** Nom: '.$nom.', Prénom: '.$prenom."\r\n");
}
else{
fwrite($fichierNomsNonTraites,'ID: '.$c->id_etudiant.' - '.$c->nom."\r\n");
  
}
 
 
}
fclose($fichierNomsTraites);
fclose($fichierNomsNonTraites);
echo "Operation terminee <br />";
    <?php
define('SQL_HOST', 'localhost');
define('SQL_DBNAME', 'etudiant');
define('SQL_USERNAME', 'root');
define('SQL_PASSWORD', '');
define('MYSQL_PORT', '8080');
define('FICHIER_NOMS_TRAITES','C:\xampp\htdocs\etudiant-noms-traites.txt');
define('FICHIER_NOMS_NON_TRAITES','C:\xampp\htdocs\etudiant-noms-non-traites.txt');
$fichierNomsTraites = fopen(FICHIER_NOMS_TRAITES,'w');
$fichierNomsNonTraites = fopen(FICHIER_NOMS_NON_TRAITES,'w');
$pdo = new PDO('mysql:host='.SQL_HOST.';port='.MYSQL_PORT.';dbname='.SQL_DBNAME, SQL_USERNAME, SQL_PASSWORD);
$stmt = $pdo->query("SELECT * from ca_etudiant");
$stmt->execute();
$etudiant = $stmt->fetchAll(PDO::FETCH_OBJ);
$i = 0;
foreach($etudiant as $c){
$matches = array();
preg_match("/([A-Z][A-Z]+\s)+/", $c->nom, $matches, PREG_OFFSET_CAPTURE);
if(isset($matches[0][0])){
$nom = trim($matches[0][0]);
$prenom = trim(str_replace($nom,"",$c->nom));
$q = "UPDATE ca_etudiant SET nom = ?, prenom=? WHERE id_etudiant=?";
$stmt = $pdo->prepare($q);
$stmt->bindValue(1,$nom);
$stmt->bindValue(2,$prenom);
$stmt->bindValue(3,$c->id_etudiant);
$stmt->execute();
fwrite($fichierNomsTraites,'ID: '.$c->id_etudiant.' - '.$c->nom. ' *** Nom: '.$nom.', Prénom: '.$prenom."\r\n");
}
else{
fwrite($fichierNomsNonTraites,'ID: '.$c->id_etudiant.' - '.$c->nom."\r\n");
}
}
fclose($fichierNomsTraites);
fclose($fichierNomsNonTraites);
echo "Operation terminee <br />";
