8722 sujets

Développement web côté serveur, CMS

Bonjour,
J'ai fait un script pour récupérer un id, un pseudo, un message et une date_commentaire. Je n'ai pas d'input date, seulement pseudo et message. Tout est inscrit dans la BDD, mais il ne me renvoie pas la date : erreur signalée undefinided date_commentaire.
Quelqu'un peut-il m'aider SVP





<p class="pages">
<?php
  // Connexion à la base de données pour pouvoir commencer les requêtes et autres
 try
{
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host;dbname=;charset=utf8', '', '', $pdo_options);
		   if (isset($_POST['pseudo']) AND !empty($_POST['pseudo']) AND isset($_POST['message']))
    {
    // Insertion du message à l'aide d'une requête préparée
    $req = $bdd->prepare('INSERT INTO livreor (pseudo, message, date_commentaire) VALUES(?, ?, NOW())');
    $req->execute(array($_POST['pseudo'], $_POST['message']));
     }
   
    
   $nombreDeMessagesParPage = 20;
   $ret = $bdd->query('SELECT COUNT(*) AS nb FROM livreor');
 
   $data = $ret->fetch();
   $totalDesMessages = $data['nb'];
  
   $nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
  
   echo 'Page : ';
    
      {
        for ($i = 1 ; $i <= $nombreDePages ; $i++)
          {
           echo '<a href="commentaires2.php?page=' . $i . '">' . $i . '</a> ';
          }
       }
    echo '<br /><em> Nombre de commentaires postés: </em>'.$totalDesMessages;
}
   catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}
?>
</p>
   
    
<?php
   // --------------- Etape 3 ---------------
   // Maintenant, on va afficher les messages
   // ---------------------------------------
 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 pseudo, message, DATE_FORMAT(date_commentaire, \'%d/%m/%Y à %Hh%imin%ss\') FROM livreor 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 class="style_message"><strong>' . htmlspecialchars($donnees['pseudo']) . ' a écrit:</strong><br /> ' . nl2br(code($donnees['message'])) . ' </p>';
 echo '<p>  ' . htmlspecialchars ($donnees['date_commentaire']) . '</p>';

    }
    $reponse->closeCursor();
 
?>
 
  </div>


    

Modifié par americanbichon (01 Mar 2015 - 11:39)
Salut,

c'est normal, car tu fais un DATE_FORMAT, la colonne retournée ne s'appelle donc pas "date_commentaire" mais DATE_FORMAT... Fais un alias, par exemple DATE_FORMAT(date_commentaire, \'%d/%m/%Y à %Hh%imin%ss\') AS date_commentaire et ça devrait marcher.