Script qui découpe le nom et prénom en php
Fermé
beta.a
Messages postés
28
Date d'inscription
mercredi 13 février 2019
Statut
Membre
Dernière intervention
14 mars 2019
-
Modifié le 5 mars 2019 à 12:23
beta.a Messages postés 28 Date d'inscription mercredi 13 février 2019 Statut Membre Dernière intervention 14 mars 2019 - 6 mars 2019 à 14:55
beta.a Messages postés 28 Date d'inscription mercredi 13 février 2019 Statut Membre Dernière intervention 14 mars 2019 - 6 mars 2019 à 14:55
A voir également:
- Script qui découpe le nom et prénom en php
- Script vidéo youtube - Guide
- Nom et prénom - Guide
- Trouver adresse avec nom et prénom ✓ - Forum Mobile
- Nom de l'adresse - Forum Consommation & Internet
- Traduction elfique prénom - Forum Réseaux sociaux
2 réponses
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
5 mars 2019 à 15:59
5 mars 2019 à 15:59
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
beta.a
Messages postés
28
Date d'inscription
mercredi 13 février 2019
Statut
Membre
Dernière intervention
14 mars 2019
5 mars 2019 à 16:23
5 mars 2019 à 16:23
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?
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
5 mars 2019 à 19:19
5 mars 2019 à 19:19
Il faut te tourner vers les expressions régulières ( REGEX )
clé de 12
Messages postés
139
Date d'inscription
samedi 19 juin 2010
Statut
Membre
Dernière intervention
3 novembre 2024
1
5 mars 2019 à 23:10
5 mars 2019 à 23:10
Bonjour, est ce que ça te conviendrait?
$string= ta valeur (JEAN MARIA laprov)
$champs = explode(" ", $string);
echo $champs[0]; //jean
echo $champs[1]; // Maria
echo $champs[2]; // laprov
Ca devrait marcher si tous tes données sont construites sur la même syntaxe...
@+
Qu'en pense Jordane45? @+
$string= ta valeur (JEAN MARIA laprov)
$champs = explode(" ", $string);
echo $champs[0]; //jean
echo $champs[1]; // Maria
echo $champs[2]; // laprov
Ca devrait marcher si tous tes données sont construites sur la même syntaxe...
@+
Qu'en pense Jordane45? @+
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
>
clé de 12
Messages postés
139
Date d'inscription
samedi 19 juin 2010
Statut
Membre
Dernière intervention
3 novembre 2024
5 mars 2019 à 23:50
5 mars 2019 à 23:50
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
beta.a
Messages postés
28
Date d'inscription
mercredi 13 février 2019
Statut
Membre
Dernière intervention
14 mars 2019
Modifié le 6 mars 2019 à 11:16
Modifié le 6 mars 2019 à 11:16
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
beta.a
Messages postés
28
Date d'inscription
mercredi 13 février 2019
Statut
Membre
Dernière intervention
14 mars 2019
Modifié le 6 mars 2019 à 11:20
Modifié le 6 mars 2019 à 11:20
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 />";