<?php
include '../../INCLUDE/MySQL_include_param_dbb.php';
include '../../INCLUDE/MySQL_include_sprog_commun_shell.php';
setlocale (LC_ALL, 'fr_FR.UTF-8');
try {
 // == Connexion de la base de données ==
 $bdd = new PDO($TYPE_DBB.":host=".$SERVEUR.";dbname=".$BASEDD,$LOGIN_ADM,
        $MDP_ADM, array(PDO::ATTR_PERSISTENT => true));
 // -- Définition du codage en UTF8 --
 $bdd->exec("SET CHARACTER SET utf8");     
 // -- Affichage de toute la table des personnes -- 
 affichage_table($bdd,"Liste des personnes","personnes");
 // -- Saisie d'une liste de personnes --
 $saisie="saisie non vide";
 echo PHP_EOL;
 echo "-------------------------------------".PHP_EOL;
 echo "-- Saisie de nouvelles personnes ---".PHP_EOL;
 echo "-------------------------------------".PHP_EOL;
 while (!empty($saisie))
 {echo "Entrez un nom,un prenom,un âge (ex:Dupont;Jean;28): ";
  $saisie=fgets(STDIN);
  // -- Traitement de la chaîne lue --
  // Suppression des espaces (début, fin) et du saut de ligne
  $saisie=trim($saisie);
  // Remplace les espaces multiples par un seul espace
  $saisie= preg_replace('/\s{2,}/',' ',$saisie);
  // Remplace ; suivi d'un espace par ;
  $saisie= preg_replace('/;\s/',';',$saisie);
  // Remplace un espace suivi d'un ; par ;
  $saisie= preg_replace('/\s;/',';',$saisie);
  // On vérifie que la saisie n'est pas vide
  if (!empty($saisie))
  {// rangement dans les variables
   list($Nom,$Prenom,$Age)=explode(';',$saisie);
   $Nom    = normalisation_nom($Nom)      ;
   $Prenom = normalisation_nom($Prenom)   ;
   $Age    = normalisation_numerique($Age);
   $Age    = intval($Age)                 ;
   // -- insertion dans la base de données --
   if (!empty($Nom) && !empty($Prenom) && !empty($Age) )
   {echo "Insertion de : $Nom,$Prenom,$Age".PHP_EOL;
    // -- Exécution de la requête --
    $requete="INSERT INTO personnes (Nom, Prenom, Age) VALUES ('$Nom','$Prenom',$Age)";
    echo "requete = $requete".PHP_EOL;
    $reponse = $bdd->exec($requete);
    if (!$reponse) {
     throw new Exception('Problème de requête sur la table.'.PHP_EOL);
    }
   }
   else {
     throw new Exception('Un des champs est vide.'.PHP_EOL);
   }
  }
 }
 echo PHP_EOL;
 // -- Affichage de toute la table des personnes -- 
 affichage_table($bdd,"Liste des personnes","personnes");
}
catch(Exception $e) {echo 'Erreur : '.$e->getMessage();}
?>
