Comment insérer la date courant dans la table d'une data base?

Fermé
sergi1212 Messages postés 4 Date d'inscription lundi 15 février 2016 Statut Membre Dernière intervention 15 février 2016 - Modifié par jordane45 le 15/02/2016 à 02:21
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 - 15 févr. 2016 à 02:32
Bonjour,

s'il vous plait j'aimerai que quelqu'un me vienne en aide car cela fait 3 jours que je cherche à insérer la date courant lors d'une soumission du formulaire dans la table de la bdd mais je n'y arrive point. voici ce que j'ai fai: j'ai un premier fichier qui permet d'afficher le élement de la table puis un deuxieme qui insère les l'element y compris la date courante(qui est mon pb), en faite j'ai en vie de réaliser un mini-chat mais je n'y arrive pas. à l'aide!

voici le premier fichier
<?php 
   //connexion à la base de données
   try{
    $base = new PDO('mysql:host=localhost;dbname=universite', 'root', '');
   }catch(Exception $e){
    die('Erreur: '.$e->getMessage());
   }
   
   //récupération des 10 derniers messages 
   $reponse = $base->query('SELECT * FROM minichat ORDER BY ID DESC LIMIT  0, 3');
   //affichage de tous les messages en le protégeant avec htmlspecialchars
   //$reponse = $base->exec('UPDATE minichat SET message = \'brs a vous comment allez vous!\', pseudo = \'brice\' WHERE ID = 30');
  ?>
  
  <?php
   while($donnee = $reponse->fetch())
   {
  ?>
   <p class="bg"><strong style="color:blue;"><?php echo $donnee['pseudo'];?>: </strong><?php echo $donnee['message']; ?><br />
   <?php echo $donnee['date_sms']; ?></p>
  <?php
   }
   $reponse->closeCursor();
  ?>

et voici le second
<?php
 //connexion à la base de données
 try
 {
  $base = new PDO('mysql:host=localhost;dbname=universite', 'root', '');
 }catch(Exception $e){
  die('Erreur '. $e->getMessage());
 }
 if(isset($_POST['message']) AND $_POST['message']){
  //insertion du message à l'aide d'une requête préparée
  $requete = $base->prepare('INSERT INTO minichat(pseudo, message, date) VALUES(?, ?, Now()');
  $requete->execute(array($_POST['pseudo'], $_POST['message'], $_POST['date']));
 }else{
  echo 'bad';
 }
 //redirection du visiteur vers la première page
 header('Location: minichat.php');

?>
mon pb se trouve au niveau de l'utilisation de Now(). Somebody help me!




EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
A voir également:

2 réponses

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
Modifié par jordane45 le 15/02/2016 à 02:33
Donc...

Déjà .. plutôt que de copier coller le code de connexion à ta BDD dans chaque fichier ... place le dans un fichier à part ..et fais en un INCLUDE lorsque tu en as besoin.

Ensuite, n'hésites pas à placer tes requêtes dans un bloc try/catch pour voir les éventuelles erreurs.

Lorsque tu es en phase de "tests" , penses aussi à désactiver les redirections (sinon.. tu ne verras jamais les erreurs...)

et enfin...
Soit tu fais un NOW en PHP ... soit tu utilises les fonctions de Mysql.

Ce qui donnerait quelque-chose du genre :

<?php
//Fichier de connexion à la BDD : cnxBDD.php
//------------------------------------------------------------//
 //connexion à la base de données
 try {
  $base = new PDO('mysql:host=localhost;dbname=universite', 'root', '');
 }catch(Exception $e){
  die('Erreur '. $e->getMessage());
 }
?>


Le fichier contenant ton update :

<?php
//pour afficher les erreurs php :
 error_reporting(E_ALL);
 
//connexion à la BDD:
 require_once 'cnxBDD.php';
 
// récupération "propre" des variables
// (en utilisant l'écriture ternaire + Isset )
 $message = isset($_POST['message']) ? $_POST['message'] : NULL;
 $pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo'] : NULL;

 if($message && $pseudo){
  
  try{
    // on sépare la "requete" du prépare :
    $sql = "INSERT INTO minichat(pseudo, message, date) VALUES(:pseudo, :message, now())";
   
    // on sépare les variables du Execute
    $a_data = array(":pseudo"=>$pseudo,":message"=>$message);
 
    //insertion du message à l'aide d'une requête préparée
    $requete = $base->prepare($sql);
    $requete->execute($a_data);
 
 //redirection du visiteur vers la première page
    header('Location: minichat.php');
   
  }catch(Exception $e){
     echo "<br><b>Erreur :</b>". $e->getMessage();
     echo "<br>Requete :<br>".$sql;
     echo "<br> Variables :<br>";
     print_r($a_data);
     exit();
  }
 }else{
  echo 'bad : Pseudo ou  message vide !';
 }




Cordialement, 
Jordane                                                                 
1
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
15 févr. 2016 à 01:25
Bonjour
la quote de fin est mal placée.
0
sergi1212 Messages postés 4 Date d'inscription lundi 15 février 2016 Statut Membre Dernière intervention 15 février 2016
15 févr. 2016 à 01:40
oui meme jusque la ca ne change rien jordane45
0