Formulaire problème avec php

ANTHURIUMRE Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   -  
ANTHURIUMRE Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je tente vainement d'insérer via un code php des données dans un tableau sondage. Non seulement le script n'envoie pas mes données dans mon tableau mais qui plus est easyphp m'indique cette erreur ;

Fatal error: Call to a member function fetch() on a non-object in C:\Program Files\EasyPHP-5.3.8.0\www\BLOG\questionsondage.php on line 35


Quelqu'un pourrait-il m'aider s'il vous plaît merci. Je mets ci-dessous mes scripts :

Questionsondage.php
<html>
<body>


<form action ="questionsondage_post.php" method="post">
<p><label >Question</label>
<input type ="text" size="200" name="question" id ="question"/><br>

<input type="submit" value="Envoyer"/>
</p>
</form>

<?php

try
{
$bdd = new PDO ('mysql:host:localhost;dbname=news','root','');
}
catch (Exception $e)
{
die('Erreur :'.$e->getMessage());
}





//Fin du code testeur
//debut code récupération des X derniers messages

$reponse=$bdd->query('SELECT question FROM sondage ORDER BY date_de_creation  DESC LIMIT 0,1');

//Affichage de chaque message ( données protégées par htmlspecialchars )

while ($donnees=$reponse->fetch())
{
		echo '<strong>'.htmlspecialchars($donnees['question']).'</strong> <br>';
}

$reponse->closeCursor();
?>
</body>
</html>


Questionsondage_post.php
<?php 
try
{
$bdd = new PDO ('mysql:host:localhost;dbname=news','root','');

}
catch (Exception $e)
{
die('Erreur :'.$e->getMessage());
}





$req=$bdd->prepare('INSERT  INTO sondage  (question, date_de_creation) VALUES (?,NOW()) ');
$req->execute(array($_POST['question']));



header('Location:questionsondage.php');


?>


A voir également:

3 réponses

Utilisateur anonyme
 
Bonjour,

Si vous avez ce message d'erreur, cela signifie probablement que votre requete SQL 'SELECT question FROM sondage ORDER BY date_de_creation DESC LIMIT 0,1' comporte une erreur
$reponse ne doit pas être un statement mais égal à False, vérifiez votre requête à la main
0
nickyaneo57 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   2
 
tu essaie de faire un fetch sur $reponse qui n'est pas un objet il s'agit que d'une variable d'où ton code d'erreur easyphp.
0
ANTHURIUMRE Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   2
 
Bonjour neoprog67 et nickyaneo57,

J'ai résolu le problème du message d'erreur.

Maintenant mon souci est que je n'arrive pas à inserer dans ma table "question" mes questions. Pourtant je n'ai aucun message d'erreur d'easyphp. Cette insertion doit se faire par le biais de

Questionsondage_post.php

<?php 
try
{
$bdd = new PDO ('mysql:host:localhost;dbname=news','root','');

}
catch (Exception $e)
{
die('Erreur :'.$e->getMessage());
}





$req=$bdd->prepare('INSERT  INTO sondage  (question, date_de_creation) VALUES (?,NOW()) ');
$req->execute(array($_POST['question']));



header('Location:questionsondage.php');


?>


Merci pour votre aide.
0