Tuto edition/suppression article

tintindelacite

tintindelacite Le 17 février 2017 à 19:10 (Édité le 25 janvier 2019 à 17:53)

Bonsoir, j'ai un souci j'arrive a poster un article, le supprimer, mais je n'arrive pas a le modifier?
Pas de message d'erreur, pas de modif
<?php

$bdd = new PDO('mysql:host=localhost;dbname=tuto', 'root','');

$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));
      var_dump($edit_id);
         $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';
   }
}
?>
Merci
Johan-Krn

Johan-Krn Le 18 février 2017 à 03:20

Bonjour je comprend pas trop ton code !! tu peut replacer la ligne au tu te connecte a ta base de donnée et mettre ça
$bdd = new PDO('mysql:host=localhost;dbname=tuto', 'root','', [PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING]);
ensuite fait des teste si ta une erreur sa s'affichera si ta pas d'erreur essaie de mettre un var_dump de $mode_edition et un die() juste avant le if pour voir si $mode_edition est a 1 après dit moi ce qu'il sait passer 
tintindelacite

tintindelacite Le 20 février 2017 à 16:34

Bonsoir, désolé pour le temps de  réponse, pour la connexion, je ne pense pas avoir de problème j'arrive a poster et supprimer, j'ai mis la connexion comme ci-dessous, parce que avec ton modèle, j'avais une unexpected '[' (bon j' ai php 5.2.6 donc c'est peut etre pour ça....
// Connexion à la base de données 
        try{
            $bdd = new PDO('mysql:host=localhost;dbname=tuto;charset=utf8', 'root', '');
        }
        catch(Exception $e){
            die('Erreur : '.$e->message());
        }

Pour le var_dump ($mode_edition); il renvoi bien  int(1)...pour le die je ne sais pas l'utiliser je le met seul genre  die();
Je pense que mon problème viens du formulaire et de la partie :
<input type ="text"name ="article_titre" placeholder= "titre"<?php if($mode_edition ==1){?> value ="<?php echo $edit_article['titre']?>"<?php }?> />
Merci
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte