Comment insérer la date courant dans la table d'une data base?
sergi1212
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
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
et voici le second
?>
mon pb se trouve au niveau de l'utilisation de Now(). Somebody help me!
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:
- Comment insérer la date courant dans la table d'une data base?
- App data - Guide
- Insérer une vidéo dans powerpoint - Guide
- Table ascii - Guide
- Comment insérer une table des matières dans word - Guide
- Comment ouvrir un fichier dat - Guide
2 réponses
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 :
Le fichier contenant ton update :
Cordialement,
Jordane
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