Correction colonne dans une base de donnée MySQL

Messages postés
28
Date d'inscription
mercredi 13 février 2019
Statut
Membre
Dernière intervention
14 mars 2019
-
Salut,aider moi svp
ce code elle m'a donnée une liste de nom et prénom mais c pas suffisant car je vais découpée le champ nom en majiscules et miniscules, par exemple si on a un nom : "ALAN DEPO-Maria",c code là elle m'a donnée dans la colonne nom "ALAN" et dans la colonne prénom "DEPO-Maria" par contre je vais mettre touts les champs majuscules dans le nom et le minuscules dans le prénom, en outre le résultat doit être comme ça colonne nom : ALAN DEPO- et colonne prénom doit avoir Maria.
et merci d'avance


<?php

define('SQL_HOST',      'localhost');
define('SQL_DBNAME',      'etudiant');
define('SQL_USERNAME', 'root');
define('SQL_PASSWORD', '');
define('MYSQL_PORT', '3306');

$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();
$etudiants = $stmt->fetchAll(PDO::FETCH_OBJ);

$listeTraites = "<ul>";
$listeNonTraites="<ul>";

$i = 0;
foreach($etudiants 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));
  
  
  $query = "UPDATE ca_etudiant SET nom = ?, prenom=? WHERE id_etudiant=?";
  $stmt = $pdo->prepare($query);
  $stmt->bindValue(1,$nom);
  $stmt->bindValue(2,$prenom);
  $stmt->bindValue(3,$c->id_etudiant);
  $stmt->execute();
  
  $listeTraites.='<li>ID: '.$c->id_etudiant.' - '.$c->nom. ' *** Nom: '.$nom.', Prénom: '.$prenom."</li>";

 }
 else{
  $listeNonTraites.='<li>ID: '.$c->id_etudiant.' - '.$c->nom."</li>";
  
 }
 
 
}

$listeTraites.="</ul>";
$listeNonTraites.="</ul>";

?>
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <style>
   body{
    font-family:Arial;
   }
  </style>
 </head>
 
 <body>
 
  <h3>Liste des étudiant traités</h3>
  <hr />
  <?php echo $listeTraites; ?>
  
  <br /><br />
  
  <h3>Liste des étudiant non traités</h3>
  <hr />
  <?php echo $listeNonTraites; ?>
 </body>


</html>




Afficher la suite 

1 réponse

Messages postés
26505
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 octobre 2019
316
0
Merci
Re bonjour,
Pourquoi poster une nouvelle question ici.... alors que tu avais déjà celle la : https://www.commentcamarche.net/forum/affich-35905106-script-qui-decoupe-le-nom-et-prenom-en-php

??
jordane45
Messages postés
26505
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 octobre 2019
316 -
Et au cas où....
Regarde ce que fait cette expression régulière :

(^[A-Z\s]*)
beta.a
Messages postés
28
Date d'inscription
mercredi 13 février 2019
Statut
Membre
Dernière intervention
14 mars 2019
-
Bonjour, ça marche mais avec autre problème :
elle me donne une résultat comme ça : Exemple/ nom : DIDA H et prénom : elen
par contre elle doit etre comme ça le résultat / nom : DIDA et prénom Helen
autres exemple nom : ANDRIA-LAPROV Luca
elle m'a donnée le résultat suivante : nom : ANDRIA et prénom : -LAPROV Luca,par contre le résultat doit etre comme ça , nom : ANDRIA-LAPROV et prénom : Luca
jordane45
Messages postés
26505
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 octobre 2019
316 > beta.a
Messages postés
28
Date d'inscription
mercredi 13 février 2019
Statut
Membre
Dernière intervention
14 mars 2019
-
faut chercher la bonne regex.
Tu peux les tester en ligne sur , par exemple : https://regex101.com/
beta.a
Messages postés
28
Date d'inscription
mercredi 13 février 2019
Statut
Membre
Dernière intervention
14 mars 2019
-
j'essaye d'appliquer ça : preg_match("/([A-Z]*+\s)+/", $c->nom, $matches, PREG_OFFSET_CAPTURE);
le seul problème si il y'a un nom avec tiret comme ça :ANDRIA-MICHEL Laprov
elle m'a donnée le résultat suivante : nom -> MICHEL et prénom ANDRIA-Laprov
beta.a
Messages postés
28
Date d'inscription
mercredi 13 février 2019
Statut
Membre
Dernière intervention
14 mars 2019
-
si y'a t'il une autre solution sans regex aider moi SVP , je suis bloqué
Commenter la réponse de jordane45