IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Insertion d'articles dans la base de données / problème d'affichage


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Journaliste - formateur web
    Inscrit en
    Octobre 2017
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Journaliste - formateur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2017
    Messages : 35
    Points : 37
    Points
    37
    Par défaut Insertion d'articles dans la base de données / problème d'affichage
    Bonjour à tous,

    Dans le cadre d'un projet de création de blog, je suis actuellement en train de créer l'insertion de posts dans la partie administration.
    Mon projet est monté en MVC et en orienté objet.

    Dans le model Post, j'ai fait une requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    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" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <?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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    ublic 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

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je ne sais pas trop où est mon erreur.
    Et tu as debugué ?
    Est-ce que tu la fonction create() est bien executée ? Si ou, on arrive dans le if ou dans le else ?
    etc.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Journaliste - formateur web
    Inscrit en
    Octobre 2017
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Journaliste - formateur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2017
    Messages : 35
    Points : 37
    Points
    37
    Par défaut Use of undefined constant create - assumed 'create'
    Salut !
    Merci pour ton message !
    J'avance petit à petit.

    Désormais, j'arrive à enregistrer mes posts dans la BDD. Mais j'ai un message d'erreur dans la vue :
    " Notice: Use of undefined constant create - assumed 'create' in /Users/vanessa/Documents/Open classrooms/projet3fw/Controller/ControllerAdmin.php on line 69
    Warning: extract() expects parameter 1 to be array, string given in /Users/vanessa/Documents/Open classrooms/projet3fw/Framework/View.php on line 86"


    J'ai repris ma vue create.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <div class="breadcrumb">
        <li><a href="admin/create"> >> Ajouter un chapitre </a></li>
    </div>
     
     
    <form method="post" action="admin/create">
     
        <label>Titre : </label>
        <input type="text" name="title" size="53" max="600" required>
        <br/>
        <label>Contenu : </label>
        <textarea name="content" cols="51" rows="5" required ></textarea>
        <br/>
        <input type="submit" value="Enregistrer" />
    </form>
    Ainsi que ma méthode Create dans le controlleradmin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     public function create()
        {
            if(isset($_POST['title']) && isset($_POST['content'])) {
                if (!empty($_POST['title']) && !empty($_POST['content']))
                {
                    $title = $this->request->getParameter('title');
                    $content = $this->request->getParameter('content');
                    $this->post->addPost($title, $content);
                    $this->executeAction("chapters");
                }
            }
            else
            {
                    $this->buildView(create);
            }
        }
    Je suis quasiment sûre que mon erreur vient de la partie else. Mais je ne vois pas ce qu'il faut écrire.
    Si tu as une idée, je suis preneuse.
    Merci d'avance !
    Vanessa

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Comme l'indique l'erreur, ça serait pas la chaine 'create' au lieu d'une constate create ?

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Journaliste - formateur web
    Inscrit en
    Octobre 2017
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Journaliste - formateur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2017
    Messages : 35
    Points : 37
    Points
    37
    Par défaut
    En fait, il fallait juste écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    else
            {
                    $this->buildView();
            }
    C'est résolu !
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. insertion des blob dans une base de données
    Par ala1986 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 05/04/2009, 16h48
  2. Insertion d'Ip dans une base de données
    Par momoh dans le forum VB.NET
    Réponses: 1
    Dernier message: 19/02/2009, 17h16
  3. Insertion d'images dans la base de données
    Par L'aigle de Carthage dans le forum Langage
    Réponses: 1
    Dernier message: 22/07/2008, 02h09
  4. Recherche classe pour ajout/modif/suppression d'articles dans une base de donnée
    Par will89 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 02/02/2007, 12h59
  5. [MySQL] Insertion d'image dans une base de données
    Par dragonfly dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/03/2006, 15h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo