Erreur dans mon code

Résolu/Fermé
christo470 Messages postés 33 Date d'inscription dimanche 11 mars 2012 Statut Membre Dernière intervention 17 août 2013 - 11 mars 2012 à 17:36
christo470 Messages postés 33 Date d'inscription dimanche 11 mars 2012 Statut Membre Dernière intervention 17 août 2013 - 12 mars 2012 à 07:36
Bonjour, après avoir changer mon code de tout a l'heure pour le faire passer par PDO j'ai une erreur : Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\site_topher_design_propre\livre_or.php on line 61

Voila mon code :

<?php

 try
{
    $bdd = new PDO('mysql:host=localhost;dbname=topher_design', 'root', '');
    if (isset($_POST['nom']) AND !empty($_POST['nom']) AND isset($_POST['prenom']) AND !empty($_POST['prenom']) AND isset($_POST['message']) AND !empty($_POST['message']))
	{
    // Insertion du message à l'aide d'une requête préparée
    $req = $bdd->prepare('INSERT INTO livre_or (nom, prenom, message, date) VALUES(?, ?, ?, NOW())');
    $req->execute(array($_POST['nom'], $_POST['prenom'], $_POST['message']));
	
	}	


$nombreDeMessagesParPage = 5;
   $ret = $bdd->query('SELECT COUNT(*) AS nb FROM livre_or');

   $data = $ret->fetch();
   $totalDesMessages = $data['nb'];
   
 
   $nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
 
   echo 'Page : ';
   
      {
        for ($i = 1 ; $i <= $nombreDePages ; $i++)
          {
           echo '<a href="livre_or.php?page=' . $i . '">' . $i . '</a> ';
          }
       }
	echo '<br /><em> nombre totale des messages</em>'.$totalDesMessages;
}
   catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}
?>

  
   
<?php
   
   
$bdd = new PDO('mysql:host=localhost;dbname=topher_design', 'root', '');
   
 if (isset($_GET['page']) )
  {
    $page = intval($_GET['page']); // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
  }
 else // La variable n'existe pas, c'est la première fois qu'on charge la page
  {
        $page = 1; // On se met sur la page 1 (par défaut)
  }
    // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
  $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
  $reponse = $bdd->query("SELECT nom, prenom, message, DATE_FORMAT(date, '%d/%m/%Y %Hh%imin%ss') AS date FROM livre_or ORDER BY id DESC LIMIT " . $premierMessageAafficher . ", " . $nombreDeMessagesParPage);
   

    // Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
 while($donnees = $reponse->fetch())
    {
echo '<p><strong>' . htmlspecialchars($donnees['nom']) .' '. htmlspecialchars($donnees['prenom']). ' a écrit:</strong> :<br /> ' . nl2br( htmlspecialchars($donnees['message'])).'</br> Le :'. (htmlspecialchars($donnees['date'])) . '</p>';
    }
    $reponse->closeCursor();

?>


La ligne 61 correspond a : while($donnees = $reponse->fetch())



A voir également:

2 réponses

faut pas mettre des trucs à la place des points d'interrogation: $req = $bdd->prepare('INSERT INTO livre_or (nom, prenom, message, date) VALUES(?, ?, ?, NOW())');
0
christo470 Messages postés 33 Date d'inscription dimanche 11 mars 2012 Statut Membre Dernière intervention 17 août 2013
12 mars 2012 à 07:36
j'ai fait comme tu m'a dis mais il y a toujour l'erreur. Il me dit que l'erreur vient de la ligne 65 qui correspond a : while($donnees = $reponse->fetch()) .

HELP ME PLEASE !!!!
0