Bonjour,
Je rencontre un petit souci depuis hier soir que je n'arrive pas à résoudre.
Dans un fichier de vue principale, j'ai une requête de création de commentaires, tel que :
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 <?php if(isset($commentaires)) foreach ($commentaires as $commentaire): ?> <p><strong><?= $commentaire['auteur'] ?><br /></strong><?= $commentaire['date_b'] ?></p> <p><?= $commentaire['contenu']?></p> <hr /> <?php endforeach; ?> <p> Pour poster un commentaire, veuillez remplir ces champs :</p> <form id="commentaire_form" action='entity/commentaireManager.php' method="POST" enctype="multipart/form-data"> <div class="row"> <label for="auteur">Votre pseudo:</label><br /> <input id="auteur" class="input" name="auteur" type="text" value="" size="30" /><br /> </div> <div class="row"> <label for="commBillet">Votre commentaire:</label><br /> <textarea id="commBillet" class="input" name="commBillet" rows="7" cols="30"></textarea><br /> </div> <input id="submit_button" type="submit" value="Envoyer" /> </form> </div>
L'affichage des commentaires est ok. Par contre, quand je l'ajoute via la classe :
Le message d'erreur que je recois et que la classe bddmanager n'est pas trouvé. Or, elle existe bien, dans le même dossier, tel que :
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
21 <?php class commentaireManager extends bddmanager { public function addCommentaire() { $bdd = $this->bdd; $query ='INSERT INTO t_commentaire (COM_DATE, COM_AUTEUR, COM_CONTENU) VALUES (NOW(), :auteur, :contenu)'; $req = $bdd->prepare($query); $req->execute(array( 'COM_DATE' => $_POST['date'], 'COM_AUTEUR' => $_POST['auteur'], 'COM_CONTENU' => $_POST['commBillet'], )); header('Location: "index.php?action=billet&id=' . $_POST['id']); } }
Je rajoute juste que dans ma classe commentaireManager, j'ai une autre fonction qui marche très bien, donc l'appel à la base est bien réalisé dans celle-ci:
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 <?php class bddmanager { protected $bdd; private $host = "localhost"; private $login = "root"; private $password = ""; public function __construct() { $bdd = new PDO('mysql:host=' . $this->host . ';dbname=monblog;charset=utf8', $this->login, $this->password); $this->bdd = $bdd; } }
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
21
22
23
24
25
26
27 public function getCommentaires($id = null) { $bdd = $this->bdd; $query = 'SELECT COM_ID AS id, COM_DATE AS date_b, COM_AUTEUR AS auteur, COM_CONTENU AS contenu FROM T_COMMENTAIRE'; ($id == null) ? $where = '' : $where = ' WHERE BIL_ID= :id '; $query .= $where; $query .= ' ORDER BY COM_ID desc '; ($id == null) ? $limit = 'LIMIT 0,3' : $limit = ''; $query .= $limit; // echo $query; exit; $req = $bdd->prepare($query); if ($id) $req->bindParam(':id', $id); $req->execute(); if ($req->rowCount() > 0) { while ($row = $req->fetch(PDO::FETCH_ASSOC)) { // instance of a commentaire object $commentaire = new Commentaire(); // hydrate manualy from bdd datas $commentaire->hydrate($row); $commentaires[] = $row; } return $commentaires; } }
Une idée ?
Partager