Correction colonne dans une base de donnée MySQL

Messages postés
21
Date d'inscription
mercredi 13 février 2019
Dernière intervention
7 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 

Votre réponse

1 réponse

Messages postés
24893
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 mars 2019
363
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
24893
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 mars 2019
363 -
Et au cas où....
Regarde ce que fait cette expression régulière :

(^[A-Z\s]*)
beta.a
Messages postés
21
Date d'inscription
mercredi 13 février 2019
Dernière intervention
7 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
24893
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 mars 2019
363 > beta.a
Messages postés
21
Date d'inscription
mercredi 13 février 2019
Dernière intervention
7 mars 2019
-
faut chercher la bonne regex.
Tu peux les tester en ligne sur , par exemple : https://regex101.com/
beta.a
Messages postés
21
Date d'inscription
mercredi 13 février 2019
Dernière intervention
7 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
21
Date d'inscription
mercredi 13 février 2019
Dernière intervention
7 mars 2019
-
si y'a t'il une autre solution sans regex aider moi SVP , je suis bloqué
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.