(erreur de syntaxe?) pour UPDATER une table
Bonjour,
J'espère être au bonne endroit pour poser ma question! Il y a beaucoup trop de sections et sous-sections:oops: Je suis nouveau ici et débute en programmation web.
Je fais un site où j'aimerais avoir une page administrative pour modifier le contenu de mes pages. Elles sont stockées dans une base de donnée MariaDB (mySQL). on dit un site dynamique je crois? J'arrive déjà afficher le contenu de ma table grâce à ce code dans ma page d'accueil:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <div id="corps">
<?php
$reponse = $bdd->prepare('SELECT * FROM pages WHERE adresse = ?');
$reponse->execute(array($page));
$donnees = $reponse->fetch();
?>
<h1><?php echo htmlspecialchars($donnees['titre']); ?></h1>
<p><?php echo htmlspecialchars($donnees['contenu']); ?></p>
<?php
$reponse->CloseCursor();
?>
</div> |
J'ai fait une page pour modifier le contenu de ma table grâce à un formulaire:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <div id="corps">
<?php
$reponse = $bdd->query('SELECT * FROM pages WHERE adresse = \'accueil.php\'');
$donnees = $reponse->fetch();
$titre = $donnees['titre'];
$contenu = $donnees['contenu'];
$reponse->CloseCursor();
?>
<form action="modifierpage_db.php" method="post">
<p><label for="titre">Titre: </label><input type="text" name="titre" id="titre" value="<?php echo $titre; ?>" /></p>
<p><label for="contenu">Contenu: </label><textarea name="contenu" id="contenu" rows="10" cols="50" ><?php echo $contenu; ?></textarea></p>
<p><input type="submit" value="Envoyer"></p>
</form>
</div> |
Et voici modifierpage_db.php:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <?php
$reponse = $bdd->prepare('UPDATE pages SET titre = :nvtitre, contenu = :nvcontenu WHERE adresse = \'accueil.php\'');
$reponse->execute(array(
'nvtitre' => $_POST['titre'],
'nvcontenu' => $_POST['contenu']
));
$reponse->closeCursor();
echo 'La page à bien été modifiée';
header('Location: index.php?page=modifierpage.php');
?> |
Malheureusement, il ne modifie rien et je commence à sécher sur mon problème. J'ai mis des marqueurs et j'en ai conclu que ça plantais sur les premières lignes. Quelqu'un à une idée de ce que je fais faux?
Merci pour vos futurs réponses
Salutation