Afficher la date et l'heure dans mon chat.

Résolu
Bonsoir à tous,
je suis entrain de coder un chat avec la date et l'heure du message en mode francophone avant le pseudo.Le probléme est quej'arrive pas a récuperer et afficher la date et l'heure .
Voici mes codes:

une partie de:minichat.php

<?php
// Connexion à la base de données
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=dbchat;charset=utf8', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}

// Récupération des  messages
$reponse = $bdd->query('SELECT  DATE_FORMAT(date_creation, '%d/%m/%Y %Hh%imin%ss') AS date,pseudo, message FROM chat')
// Affichage des messages 
while ($donnees = $reponse->fetch())
{
	echo '<p><strong>' . htmlspecialchars($donnees['date_creation']). htmlspecialchars($donnees['pseudo']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</p>';
}

$reponse->closeCursor();

?>
    </body>
</html>


minichat_post.chat

<?php

// Connexion à la base de données

try

{

    $bdd = new PDO('mysql:host=localhost;dbname=dbchat;charset=utf8', 'root', '');

}

catch(Exception $e)

{

       
 die('Erreur : '.$e->getMessage());


}


// Insertion du message à l'aide d'une requête préparée

$req = $bdd->prepare('INSERT INTO chat (pseudo, message) VALUES(?, ?)');

$req->execute(array($_POST['pseudo'], $_POST['message']));


// Redirection du visiteur vers la page du minichat

header('Location: minichat.php');

?>


Quand je poste un message seuls apparaissent le pseudo et le message mais non la date et l'heure.mais dans la table il ya l'eure en format anglais.

Merci d'avance pour votre aide.

2 réponses

  1. Salut,

    Tu utilises un alias pour le champ date_creation dans ta requête (mot clé AS) :
    SELECT DATE_FORMAT(date_creation, '%d/%m/%Y %Hh%imin%ss') AS date


    Il faut donc utiliser cet alias pour accéder à la donnée :
    $donnees['date']


    Bonne journée
    0
    1. Bonjour Pilet,
      Excuse moi j'ai commis une erreur de frappe.A la place de "AS date "j'avais mis "AS date_creation" du nom de la collonne des dates sur la table "chat".
      Cependant je ne vois toujours pas le procécédé que vous m'avez suggeré.

      Merci à+. bonne journée.
      0
    2. Tu peux essayer de faire un var_dump($donnees); dans la boucle while pour voir les données que tu récupères.
      0
  2. Bonjour Pilet,

    Je crois que je n'avais pas encore appris la fonction " var_dump" mais j'ai essayer de chercher le mode d'emploi sur le net.Je ne suis pas sur mais voilà ce que j'ai fait:
    // Récupération  message
    $reponse = $bdd->query('SELECT * FROM chat ');
    
    // Affichage de chaque message 
    while ($donnees = $reponse->fetch())
    {
        echo '<p>'var_dump($donnees); '</p>';
    }
    
    $reponse->closeCursor();
    
    ?>
        </body>
    </html


    Cependant le résultat est le meme j'ai le pseudo et le message mais pas la date qui est pourtant presente dans la table"chat"

    Merci bonne journée.
    0
    1. @jordane45bonjour,
      Le lien m'envoie a une page mais il y a ce message"
      Oops! Looks like this page has been removed or no longer exists... scratches head* "</li></ul>
      J'ai essayer de chercher ailleurs "faire un DUMP de la table " mais je ne sais vraiment pas quoi et comment faire.

      Merci encore et bonne journée.
      0
    2. @jordane45Bonjour à tous et merci pour l'aide.J'ai trouveé le bonheur en continuant a chercher .Voici la solution si ça peut aider.

      minichat.php

         <!DOCTYPE html>
      <html>
          <head>
              <meta charset="utf-8" />
              <title>Mini-chat</title>
          </head>
         
      
          <style>
          form
          {
              text-align:center;
          }
          </style>
          <body>
          
          <form action="minichat_post.php" method="post">
              <p>
              <label for="pseudo">Pseudo</label> : <input type="text" name="pseudo" id="pseudo" ><br />
        
              <label for="message">Message</label> :  <input type="text" name="message" id="message" /><br />
      
              <input type="submit" value="Envoyer" />
          </p>
          </form>
      
      <?php
      // Connexion à la base de données
      try
      {
          $bdd = new PDO('mysql:host=localhost;dbname=dbchat;charset=utf8', 'root', '');
      }
      catch(Exception $e)
      {
              die('Erreur : '.$e->getMessage());
      }
      
      
      // recuperation message
      
      $dat = date("d/m/Y H:i:s"); 
      $reponse = $bdd->query("SELECT pseudo, message, DATE_FORMAT(dat, '%d/%m/%Y à %Hh%imin%ss') AS date_fr FROM chat ORDER BY ID DESC");
        
      // Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
      while ($donnees = $reponse->fetch())
      {
          echo '<p><center> Le ' . $donnees['date_fr']. ':<strong> ' . htmlspecialchars($donnees['pseudo']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</center></p>';
      }
        
      
      
      
      
      $reponse->closeCursor();
      
      ?>
          
      
      
          </body>
      </html>


      minichat_post.php
      
      <?php
      
       Connexion à la base de données
      try
      {
         $bdd = new PDO('mysql:host=localhost;dbname=dbchat;charset=utf8', 'root', '');
      }
      catch(Exception $e)
      {
              die('Erreur : '.$e->getMessage());
      }
      //Insertion du message à l'aide d'une requête préparée
      $req = $bdd->prepare('INSERT INTO chat (pseudo, message,dat ) VALUES(?, ?,NOW())');
      
      $req->execute(array($_POST['pseudo'], $_POST['message']));
      
      // Redirection du visiteur vers la page du minichat
      header('Location: minichat.php');
      ?>
      
      0