J'ai résolu le problème, j'ai ajouté un require et c'est bon il le supprime maintenant en fonction de l'id, maintenant je dois fairel'edit.
J'ai bien le : vue/editerEleve.php?edit=74 avec le formulaire quand je clique sur éditer, et quand je clic sur OK il me dit que les moficiations sont faite, je regarde ma liste et les modifs ne sont pas effectué ... Pourquoi ?
donc j'ai fais :
modele :
require_once 'DAO.php'; // implemente le DAO
require_once 'DataBaseManager.php';
class EleveModele implements DAO
{
private static $db; //Instance de la PDO
function __construct()
{
// $instance = ::self DataBaseManager->getInstance();
self::$db=DataBaseManager::getInstance();
}
public function wrapper($row)
{
$eleve = new Eleve();
$eleve->setIdEnfant($row["idEnfant"]);
$eleve->setPrenom($row["prenom"]);
$eleve->setNom($row["nom"]);
$eleve->setDate($row["date"]);
$eleve->setSection($row["section"]);
return $eleve;
}
public function get($idEnfant)
{
$stmt=self::$db->queryBDD("SELECT * FROM enfant WHERE idEnfant=?",array($idEnfant));
//wrapper
$eleve=$this->wrapper($stmt->fetch());
return $eleve;
}
public function read(){
$listeEleve=array();
$stmt=self::$db->queryBDD("SELECT * FROM enfant ORDER BY nom DESC",null);
//retourner la liste sous forme d'objets FETCH_LAZY
while ($row = $stmt->fetch(PDO::FETCH_LAZY)) {
$eleve=$this->wrapper($row);
$listeEleve[]=$eleve;
}
return $listeEleve;
}
public function create($eleve)
{
$sql = "INSERT INTO enfant(nom,prenom,section,date) VALUES(:nom, :prenom, :section, :date)";
$var = array(":nom" => $eleve->getNom(),":prenom" => $eleve->getPrenom(),":section" => $eleve->getSection(), ":date" => $eleve->getDate());
self::$db->queryBDD($sql, $var);
}
public function update ($eleve)
{
$sql = "UPDATE enfant SET nom=:nom, prenom=:prenom WHERE idEnfant=:idEnfant";
$var = array(":nom" => $eleve->getNom(),
":prenom" => $eleve->getPrenom(),
":idEnfant"=>$eleve->getIdEnfant());
self::$db->queryBDD($sql, $var);
}
public function delete($idEnfant)
{
$sql = "DELETE FROM enfant WHERE idEnfant=:idEnfant";
$var = array(":idEnfant" => $idEnfant);
self::$db->queryBDD($sql, $var);
}
}
?>
la vue la page qui edit : (editerEleve.php)
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="style.css">
<title></title>
</head>
<body>
<div class="contour">
<form action="../controleur/EleveController.php" method="post">
<label for="nom">Nom :</label> <input type="text" name="nom"/><br/><br/>
<label for="prenom">Prenom :</label> <input type="text" name="prenom"/><br/><br/>
<label for="date">Age :</label> <input type="date" name="date" /><br/><br/>
<label for="Section">Section :</label> <input type="text" name="section"/><br/><br/>
<input type="submit" name="subed" value="OK"/>
</form>
</div>
</body>
</html>
la vue la page qui liste (listEleve.php)
<head>
<meta charset="UTF-8">
<title></title>
<style>
table
{
border-collapse: collapse; /* Les bordures du tableau seront collées (plus joli) */
}
td
{
border: 1px solid black;
}
</style>
</head>
<table>
<tr>
<td>ID </td>
<td>PRENOM </td>
<td>NOM </td>
<td>NAISSANCE </td>
<td>SECTION </td>
<td>SUPPRIMER </td>
<td>EDITER </td>
</tr>
<?php
require_once '../class/Eleve.class.php';
require_once '../modele/EleveModele.php';
require '../controleur/EleveController.php';
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
$eleveModele=new EleveModele();
$listeEleves=$eleveModele->read();
foreach ($listeEleves as $listeEleve)
{
?>
<tr>
<td> <?php echo $listeEleve->getIdEnfant();?></td>
<td> <?php echo $listeEleve->getPrenom();?></td>
<td><?php echo $listeEleve->getNom();?></td>
<td><?php echo $listeEleve->getDate();?></td>
<td><?php echo $listeEleve->getSection();?></td>
<td><a href="listeleve.php?delete=<?php echo $listeEleve->getIdEnfant();?>">Supprimer</a></td>
<td><a href="editerEleve.php?edit=<?php echo $listeEleve->getIdEnfant(); ?>">Editer</a></td>
</tr>
<?php
}
?></table>
le controleur :
```<?php
require_once '../class/Eleve.class.php';
require_once '../modele/EleveModele.php';
if(isset($_GET['delete']))
{
$eleveModele=new EleveModele();
$eleveModele->delete($_GET['delete']);
}
// INSRUCTION POUR LE FORMULAIRE D'AJOUT DES ENFANTS
if (isset($_POST['submit'])) //Si l'utilisateur clique sur le bouton
{
$nom = htmlspecialchars($_POST['nom']); // Declaration des variables
$prenom = htmlspecialchars($_POST['prenom']); // Declaration des variables
$section = htmlspecialchars($_POST['section']); // Declaration des variables
$date = htmlspecialchars($_POST['date']); // Déclaration des variables
if (empty($prenom)) {
$errors[] = "Veuillez saisir un prenom"; //Teste si le champs prenom est vide
}
if (empty($nom)) {
$errors[] = "Veuillez saisir un nom"; //Teste si le champs nom est vide
}
if (empty($section)) {
$errors[] = "Veuillez saisir une section "; // Teste si l'utilisateurs ne rentre pas de section
}
if (empty($date)) {
$errors[] = "Veuillez saisir une date "; // Teste si l'utilisateur ne rentre pas de date
}
// Teste si l'utilisateurs ajoutes des caractères spéciaux dans le champs prenom
if (!preg_match('#^[A-Za-z\-\_]{3,15}$#Usi', $_POST['prenom'])) {
$errors[] = "<p>Votre prenom doit se composer de 3 à 15 lettres, il ne doit pas contenir de caractères spéciaux.</p>";
}
// Teste si l'utilisateurs ajoutes des caractères spéciaux dans le champs nom
if (!preg_match('#^[A-Za-z\-\_]{3,15}$#Usi', $_POST['nom'])) {
$errors[] = "<p>Votre nom doit se composer de 3 à 15 lettres, il ne doit pas contenir de caractères spéciaux.</p>";
}
if (!empty($errors)) {
foreach ($errors as $error) //Boucle qui va parcourir les erreurs si il y a une erreur alors on l'affiche et on continue pas.
{
echo "<div class='error'>" . $error . "</div>";
}
}
// Si il y a aucune valeur alors on affiche :
else {
$eleveModele=new EleveModele();
$eleve=$eleveModele->wrapper($_POST);
$eleveModele->create($eleve);
die("Vous venez de definir vos choix, pour voir la liste des enfants <a href='afficher.php'> cliquer ici </a>");
}
}
// FIN DE L'INSTRUCTION DE l'AJOUT DU FORMULAIRE D'ENFANT
// INSRUCTION POUR LE FORMULAIRE D'AJOUT DES ENFANTS
if (isset($_POST['subed'])) //Si l'utilisateur clique sur le bouton
{
$nom = htmlspecialchars($_POST['nom']); // Declaration des variables
$prenom = htmlspecialchars($_POST['prenom']); // Declaration des variables
$section = htmlspecialchars($_POST['section']); // Declaration des variables
$date = htmlspecialchars($_POST['date']); // Déclaration des variables
if (empty($prenom)) {
$errors[] = "Veuillez saisir un prenom"; //Teste si le champs prenom est vide
}
if (empty($nom)) {
$errors[] = "Veuillez saisir un nom"; //Teste si le champs nom est vide
}
if (empty($section)) {
$errors[] = "Veuillez saisir une section "; // Teste si l'utilisateurs ne rentre pas de section
}
if (empty($date)) {
$errors[] = "Veuillez saisir une date "; // Teste si l'utilisateur ne rentre pas de date
}
// Teste si l'utilisateurs ajoutes des caractères spéciaux dans le champs prenom
if (!preg_match('#^[A-Za-z\-\_]{3,15}$#Usi', $_POST['prenom'])) {
$errors[] = "<p>Votre prenom doit se composer de 3 à 15 lettres, il ne doit pas contenir de caractères spéciaux.</p>";
}
// Teste si l'utilisateurs ajoutes des caractères spéciaux dans le champs nom
if (!preg_match('#^[A-Za-z\-\_]{3,15}$#Usi', $_POST['nom'])) {
$errors[] = "<p>Votre nom doit se composer de 3 à 15 lettres, il ne doit pas contenir de caractères spéciaux.</p>";
}
if (!empty($errors)) {
foreach ($errors as $error) //Boucle qui va parcourir les erreurs si il y a une erreur alors on l'affiche et on continue pas.
{
echo "<div class='error'>" . $error . "</div>";
}
}
// Si il y a aucune valeur alors on affiche :
else {
$eleveModele=new EleveModele();
$eleve=$eleveModele->wrapper($_POST);
$eleveModele->update($eleve);
die("La modification à bien ete effectué");
}
}
// FIN DE L'INSTRUCTION DE l'AJOUT DU FORMULAIRE D'ENFANT
?>