Correction colonne dans une base de donnée MySQL

Signaler
Messages postés
28
Date d'inscription
mercredi 13 février 2019
Statut
Membre
Dernière intervention
14 mars 2019
-
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>




1 réponse

Messages postés
29570
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020
337
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

??
Messages postés
29570
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020
337
Et au cas où....
Regarde ce que fait cette expression régulière :

(^[A-Z\s]*)
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
Messages postés
29570
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020
337 >
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/
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
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é