Partage
  • Partager sur Facebook
  • Partager sur Twitter

Insertion d'articles dans la base de données

Problème d'affichage

    21 janvier 2018 à 10:45:53

    Bonjour à tous,

    Dans le cadre du projet 3 (créer un blog pour un écrivain), je suis actuellement en train de créer l'insertion de posts dans la partie administration.

    Dans le model Post, j'ai fait une requête : 

       public function addPost($title, $content)
        {
            $sql = 'INSERT INTO post(title, content, date)' . ' values(?,?, NOW())';
            $post = $this->executeRequest($sql, array($title, $content));
            return $post;
        }
    

    J'ai créé une vue "admin/create.php" :

    <?php $this->title = "Billet pour l'Alaska - Administration"; ?>
    
    <div class="breadcrumb">
        <li><a href="admin/create"> >> Ajouter un chapitre </a></li>
    </div>
    
    
    <form method="post" action="">
    
        <label>Titre : </label>
        <input type="text" name="title" size="53" max="600" required value="<?php if(isset($_POST['title'])) echo $_POST['title']?>">
        <br/>
        <label>Contenu : </label>
        <textarea name="content" cols="51" rows="5" required ><?php if(isset($_POST['content'])) echo $_POST['content']?></textarea>
        <br/>
        <input type="submit" value="Enregistrer" />
    
    </form>
    

    Dans le controllerAdmin, j'ai inséré cette méthode :

        public function create()
        {
            if(isset($_POST['title']) && isset($_POST['content'])) {
                if (!empty($_POST['title']) && !empty($_POST['content']))
                {
                    $title = $_POST['title'];
                    $content = $_POST['content'];
                    $this->post->addPost($title, $content);
                    $this->redirect($this->create());
                }
            }
            else
            {
                $title = $this->request->getParameter("title");
                $content = $this->request->getParameter("content");
                $this->post->addPost($title, $content);
                $this->buildView(array('title' => $title, 'content' => $content));
            }
        }
    

    Je pense m'être trompée ici car, pour l'heure, les posts  ne s'affichent pas et ne s'insèrent pas dans la BDD.

    Je ne sais pas trop où est mon erreur.

    Si vous avez une idée, je suis vraiment preneuse !

    Merci d'avance, 

    Vanessa


    • Partager sur Facebook
    • Partager sur Twitter

    Vanessa Asse

      21 janvier 2018 à 13:14:00

      Salut ,

      Peux tu faire un screen de ta table Post ?

      • Partager sur Facebook
      • Partager sur Twitter
        21 janvier 2018 à 13:30:14

        Salut,

        Essaie déjà de compléter l'attribut action de ta balise form.

        • Partager sur Facebook
        • Partager sur Twitter
        Retrouvez-moi aussi sur Zeste de SavoirTutoriel WAMP • Nouvelle F.A.Q. PHP
          21 janvier 2018 à 16:02:04

          Salut,

          l'atribut action n'est pas necessaire s'il utilise la meme page.

          D'autre part, quelques points m'intriguent :

          $this->redirect($this->create());

          Cette ligne se trouve dans la fonction create().. tu rappelles la fonction ?

          <li><a href="admin/create"> >> Ajouter un chapitre </a></li>
          <!--                     ^- il ne manque pas un '.php' ? -->

          Et pour finir est-ce que tu appelles ta fonction create() ?

          -
          Edité par Skayotix 21 janvier 2018 à 16:02:55

          • Partager sur Facebook
          • Partager sur Twitter
          Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
            21 janvier 2018 à 19:23:36

            "l'atribut action n'est pas necessaire s'il utilise la meme page."

            Certes, mais surtout dans un MVC c'est à mon sens une bonne pratique, pour soi et pour ceux qui vont intervenir sur le code.

            • Partager sur Facebook
            • Partager sur Twitter
            Retrouvez-moi aussi sur Zeste de SavoirTutoriel WAMP • Nouvelle F.A.Q. PHP
              21 janvier 2018 à 19:38:46

              Le problème c'est quelle appelle une action d'un controller donc le code php n'est pas sur la même page et se trouve dans une fonction create

              Donc l'action du form devrait être "admin/create"

              -
              Edité par mohzah 21 janvier 2018 à 19:39:48

              • Partager sur Facebook
              • Partager sur Twitter

              Insertion d'articles dans la base de données

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown