Problème avec update qui rajoute un nouveau post

tintindelacite

tintindelacite Le 5 avril 2017 à 21:45 (Édité le 25 janvier 2019 à 17:53)

Bonsoir, j'ai suivi le tuto de prim fx sur la gestion des articles, voila j'arrive a insérer dans la bdd mais quand j'edite, le script rappelle bien le bon id, mais il ajoute une nouvelle entrée, comme s'il tenait pas compte de la variable $mode_edition = 1;

$mode_edition = 0;

if(isset($_GET['edit']) AND !empty($_GET['edit'])) {
$mode_edition = 1;
   $edit_id = htmlspecialchars ($_GET['edit']);
   $edit_article = $bdd->prepare('SELECT * FROM articles WHERE id = ?');
   $edit_article->execute(array($edit_id));
      
   if($edit_article->rowCount() == 1) {
   
      $edit_article = $edit_article->fetch();
   
   } else{
   die('Erreur : L\'article n\'existe pas...');
   }

}


if(isset($_POST['article_titre'], $_POST['article_contenu'])) {
   if(!empty($_POST['article_titre']) AND !empty($_POST['article_contenu'])){
      $article_titre = htmlspecialchars($_POST['article_titre']);
      $article_contenu = htmlspecialchars($_POST['article_contenu']);
      if($mode_edition == 0) {
         $ins = $bdd->prepare('INSERT INTO articles (titre,contenu, date_time_publication)VALUES ( ?, ?, NOW())');
         $ins->execute(array($article_titre, $article_contenu));
   
         $message = 'Votre article a bien été ajouter';
      } else {
         $update = $bdd->prepare('UPDATE articles SET titre = ?, contenu = ?, date_time_edition = NOW() WHERE id =?');
         $update->execute(array($article_titre, $article_contenu, $edit_id));
         header('Location:http://localhost/cour_php/article.php?id='.$edit_id);
         $message = 'Votre article a bien été mis a jour';
      }
      
   }else{
      $message = 'Veuillez remplir tous les champs';
   }
}
?>

Voila la partie redaction du tuto...
Et celui qui plante
$mode_edition = 0;

if(isset($_GET['edit']) AND !empty($_GET['edit'])) {
$mode_edition = 1;
    $edit_id = htmlspecialchars ($_GET['edit']);
    $edit_evenement = $bdd->prepare('SELECT * FROM evenement WHERE id = ?');
    $edit_evenement->execute(array($edit_id));
        
    if($edit_evenement->rowCount() == 1) {
    
        $edit_evenement = $edit_evenement->fetch();
    
    } else{
    die('Erreur : L\'evenement n\'existe pas...');
    }

}


if(isset($_POST['nom_evenement'], $_POST['evenement_lieu'], $_POST['evenement_descriptif'])) {
    if(!empty($_POST['nom_evenement']) AND !empty($_POST['evenement_lieu'])AND !empty($_POST['evenement_descriptif'])){
        $nom_evenement = htmlspecialchars($_POST['nom_evenement']);
        $evenement_lieu = htmlspecialchars($_POST['evenement_lieu']);
        $evenement_descriptif = htmlspecialchars($_POST['evenement_descriptif']);
        if($mode_edition == 0) {
            $ins = $bdd->prepare('INSERT INTO evenement (nom_evenement, lieu, descriptif, date_time_publication)VALUES ( ?, ?, ?, NOW())');
            $ins->execute(array($nom_evenement, $evenement_lieu, $evenement_descriptif));
    
            $message = 'Votre evenement a bien été ajouter';
        } else {
            $update = $bdd->prepare('UPDATE evenement SET nom_evenement = ?, evenement_lieu = ?, evenement_descriptif = ?, date_time_edition = NOW() WHERE id =?');
            $update->execute(array($nom_evenement, $evenement_lieu, $evenement_descriptif, $edit_id));
            header('Location:http://localhost/cour_php/index.php?id='.$edit_id);
            $message = 'Votre evenement a bien été mis a jour';
        }
        
    }else{
        $message = 'Veuillez remplir tous les champs';
    }
}
?>


Si quelqu'un voit une différence ou une erreur?
Merci André
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte