Jump to content

ab1011

Members
  • Posts

    1
  • Joined

  • Last visited

ab1011's Achievements

Newbie

Newbie (1/7)

0

Reputation

  1. <?php class cityManager { private $_db; public function __construct(PDO $db) { $this->setDb($db); } public function setDb($dbh) { $this->_db = $dbh; } public function getDisplayCity(City $city) { $sql = 'SELECT city_id, city_name, city_text FROM city WHERE city_id = :city_id'; $city_id = $city->getCityId(); $city_name = htmlspecialchars($city->getCityName()); $city_text = htmlspecialchars($city->getCityText()); $stmnt = $this->_db->prepare($sql); $stmnt->bindParam(':city_id', $city_id = $_GET['city_id']); $stmnt->bindParam(':city_name', $city_name); $stmnt->bindParam(':city_text', $city_text); $stmnt->execute(); $city_data = $stmnt->fetch(PDO::FETCH_ASSOC); $cities_data[] = $city_data; return $cities_data; } <?php class City { protected $city_id; protected $city_name; protected $city_text; protected static $error; const MSG_ERROR_CITY_ID = 'CITY ID doit être un entier'; const MSG_ERROR_CITY_NAME = 'CITY NAME doit être une chaîne de caractères'; const MSG_ERROR_CITY_TEXT = 'CITY TEXT doit être une chaîne de caractères'; const MSG_ERROR_OBJET = 'L\'OBJET ne peut pas être crée'; public function __construct(array $data) { $this->setCityId($data['city_id']); $this->setCityName($data['city_name']); $this->setCityText($data['city_text']); if(!empty(self::$error)) { throw new Exception(self::$error . self::MSG_ERROR_OBJET); } } public function setError($msg) { self::$error = $msg; } public function getError() { return self::$error; } public function setCityId($city_id) { if((is_int($city_id)) AND ($city_id > 0)) { $this->city_id = $city_id; } else { $this->setError(self::MSG_ERROR_CITY_ID); } } public function setCityName($city_name) { if(is_string($city_name)) { $this->city_name = $city_name; } else { $this->setError(self::MSG_ERROR_CITY_NAME); } } public function setCityText($city_text) { if(is_string($city_text)) { $this->city_text = $city_text; } else { $this->setError(self::MSG_ERROR_CITY_TEXT); } } public function getCityId() { return $this->city_id; } public function getCityName() { return $this->city_name; } public function getCityText() { return $this->city_text; } } <?php require('../includes/inc-connexion.php'); require('../class/cityManager.php'); ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <title>Accueil Administration</title> <link rel="stylesheet" href="css/style.css"> </head> <body> <div id="wrapper"> <h1>Administration du mini-site des villes</h1> <div id="bloc_left"> <p> L'administration du site vous permet d'ajouter<br> une nouvelle ville au site ou de modifier ou<br> supprimer une ville existante. </p> </div> <div id="bloc_right"> <ul> <li><a href="insert-city.php">Ajouter une ville</a></li> <li><a href="../index.php">Voir le site</a></li> <li><a href="logout.php">Déconnexion</a></li> </ul> </div> <p>Liste des villes : </p> <?php $manager = new cityManager($db); $cities_data = $manager->getDisplayCities(); ?> <div id="menu_vertical"> <ul> <li><a href="../index.php">Accueil</a></li> <?php if(!empty($cities_data)) : ?> <?php foreach($cities_data as $city_data) : ?> <li> <a href="../city.php?city_id=<?php echo $city_data['city_id'] ?>"><?php echo $city_data['city_name'] ?></a> - <a href="update-city.php?city_id=<?php echo $city_data['city_id'] ?>">[editer]</a> - <a href="delete-city.php?city_id=<?php echo $city_data['city_id'] ?>">[supprimer]</a> </li> <?php endforeach ?> <?php endif ?> </ul> </div> <?php require('../includes/inc-connexion.php'); require('../process/process-update-city.php'); $cities_data = array( 'city_id' => $city_id, 'city_name' => $city_name, 'city_text' => $city_text ); $city_data = new City($cities_data); $manager = new cityManager($db); $cities_data = $manager->getDisplayCity($city_data); ?> <!DOCTYPE html> <html lang="fr"> <head> <title>Modifier une ville</title> <meta charset="utf-8"> <link rel="stylesheet" href="css/style.css"> </head> <body> <div id="wrapper"> <h1>Modifier une ville</h1> <form action="" method="post"> <table> <?php if(!empty($cities_data)) : ?> <?php foreach($cities_data as $city_data) : ?> <tr> <td> <input type="text" id="city_name" name="city_name_form" placeholder="Nom de ville" value="<?php echo $city_data['city_name'] ?>"> </td> </tr> <tr> <td><label for="city_text">Texte de présentation</label></td> </tr> <tr> <td> <textarea rows="25" cols="50" id="city_text" name="city_text_form"> <?php echo $city_data['city_text'] ?> </textarea> </td> </tr> <tr> <td><input type="reset" value="Remise à zéro du formulaire"></td> </tr> <tr> <td><input type="submit" id="submit" name="submit_form" value="Modifier la ville"></td> </tr> <?php endforeach ?> <?php endif ?> </table> </form> <?php if(isset($message)) echo $message ?> </div> </body> </html> <?php require('../includes/inc-connexion.php'); require('../class/City.php'); require('../class/cityManager.php'); if(isset($_POST['submit_form'])) { $city_name_form = trim($_POST['city_name_form']); $city_text_form = trim($_POST['city_text_form']); if((empty($city_name_form)) OR (empty($city_text_form))) { $message = '<p class="error">Veuillez remplir tous les champs !</p>'; } else { $data_city = array( 'city_name' => $city_name_form, 'city_text' => $city_text_form ); $data_cities = new City($data_city); $manager = new cityManager($db); if(!$manager->getCity($city_name_form, $city_text_form)) { $message = '<p class="error">La ville ' . $city_name_form . ' n\'a pas été mise à jour !</p>'; } else { $manager->updateCity($data_cities); $message = '<p class="success">La ville ' . $city_name_form . ' a été mise à jour !</p>'; } } } Bonjour, quand je clique sur le lien éditer de la page admin/index.php devant chaque ville, j'ai toujours la même ville qui s'affiche dans le formulaire de mise à jour de la ville, Voici mes fichiers -> class/cityManager.php, class/City.php, admin/index.php, admin/update-city.php, process/process-update-city.php Merci pour votre aide.
×
×
  • Create New...