Intégrer fonction date dans script php

Fermé
wadol54 Messages postés 7 Date d'inscription mardi 29 juin 2010 Statut Membre Dernière intervention 29 juin 2010 - 29 juin 2010 à 13:58
wadol54 Messages postés 7 Date d'inscription mardi 29 juin 2010 Statut Membre Dernière intervention 29 juin 2010 - 29 juin 2010 à 15:23
Bonjour,
Ceci est mon premier message, j'apprend le php, je n'arrive pas a intégrer la fonction date_time a mon script mini chat.
Voila mon code :
Code index.php :
<form action="minichat_post.php" method="post">
<p>
    <input type="text" name="pseudo" /><br />
<textarea name="message" rows="8" cols="45">
Votre message ici.
</textarea><br />
    <input type="submit" value="Valider" />
</p>
</form>

<?php
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
$reponse = $bdd->query('SELECT pseudo, message, DATE_FORMAT(date_info, \'%d/%m/%Y %Hh%imin%ss\') AS date_info FROM minichat ORDER BY id DESC');

while ($donnees = $reponse->fetch())
{
	echo '<p><strong>' . htmlspecialchars($donnees['pseudo']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</p>';
echo $donnees['date_info'] . '...';

}

$reponse->closeCursor(); // Termine le traitement de la requête

?>


Code mini chat post.php :
<?php
// Effectuer ici la requête qui insère le message
// Puis rediriger vers minichat.php comme ceci :

try
{
	$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
$reponse = $bdd->prepare('INSERT INTO minichat(pseudo,message) VALUES (?, ?)');
$reponse->execute(array($_POST['pseudo'], $_POST['message']));

echo "Votre message a bien été ajouter";
header('Location: index.php');
?>


Ma table sql, minichat :
-- phpMyAdmin SQL Dump
-- version 3.1.3
-- https://www.phpmyadmin.net/
--
-- Serveur: localhost
-- Généré le : Mer 14 Avril 2010 à 15:00
-- Version du serveur: 5.1.32
-- Version de PHP: 5.2.9-1

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Base de données: 'test'
--

-- --------------------------------------------------------

--
-- Structure de la table 'minichat'
--

CREATE TABLE IF NOT EXISTS 'minichat' (
  'ID' int(11) NOT NULL AUTO_INCREMENT,
  'pseudo' varchar(255) NOT NULL,
  'message' varchar(255) NOT NULL,
  'date_info' datetime NOT NULL,
  PRIMARY KEY ('ID')
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=27 ;

--
-- Contenu de la table 'minichat'
--

INSERT INTO 'minichat' ('ID', 'pseudo', 'message', 'date_info') VALUES
(25, 'sss', 'Votre message ici.\r\n', '0000-00-00 00:00:00'),
(26, 'c', 'Votre message ici.\r\n', '0000-00-00 00:00:00');


Voila mon probleme au lieu d'afficher la date et l'heure il s'affiche sur tout mes messages 00/00/00 00: 00: 00.

Merci d'avance :)

Au revoir ;)

A voir également:

15 réponses

Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
29 juin 2010 à 14:59


$reponse = $bdd->prepare("INSERT INTO 'minichat' ('ID', 'pseudo', 'message', 'date_info') VALUES(25, 'sss', 'Votre message ici.\r\n', now())");

1
a70m Messages postés 2763 Date d'inscription jeudi 21 mai 2009 Statut Contributeur Dernière intervention 2 février 2014 217
29 juin 2010 à 14:13
Salut,

Ce que tu peux faire aussi, c'est définir l'heure du serveur, comme par exemple :
$jour = date("d");
$mois = date("m");
$annee = date("Y");
$heure = date("H");
$minute = date("i");
$now = "$jour/$mois/$annee à $heure:$minute";
$day = "$jour.$mois.$annee";


Et tu ajoutes ceci dans ton champs 'date' de la base de données au format TEXT par exemple.

Cordialement
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
29 juin 2010 à 14:14
A quel moment tu veut insérer la date du jour? Parce que le seul moment où tu insère une date tu met 0000-00-00 00:00:00 comme valeur... donc...
0
wadol54 Messages postés 7 Date d'inscription mardi 29 juin 2010 Statut Membre Dernière intervention 29 juin 2010
29 juin 2010 à 14:22
Bonjour,
Merci de m'avoir répondu,
A70m je n'est pas compris ou il faut mettre ton code on ne peux pas mettre du php dans une bdd, il faut l'insérer dans la partie sql de la bdd ?? désolé je suis pas encore tres doué en php ^^

Breub62 et bien j'aimerais que ce soit la date et l'heure au moment ou on insere le message qui s'affiche
Merci encore
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
a70m Messages postés 2763 Date d'inscription jeudi 21 mai 2009 Statut Contributeur Dernière intervention 2 février 2014 217
29 juin 2010 à 14:23
Dans la balise <head> de ta page, tu mets ceci :

$jour = date("d");
$mois = date("m");
$annee = date("Y");
$heure = date("H");
$minute = date("i");
$now = "$jour/$mois/$annee à $heure:$minute";
$day = "$jour.$mois.$annee";


Tu peux évidement personnaliser le format de la date et heure à ta sauce :)

Et dans ta requête, tu auras :
INSERT INTO 'minichat' ('ID', 'pseudo', 'message', 'date_info') VALUES
(25, 'sss', 'Votre message ici.\r\n', '$now'),



Cordialement
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
29 juin 2010 à 14:26
Ou en SQL :

INSERT INTO table(date) VALUES (now());
0
wadol54 Messages postés 7 Date d'inscription mardi 29 juin 2010 Statut Membre Dernière intervention 29 juin 2010
29 juin 2010 à 14:43
J'ai fait ce que vous m'avez dit et maintenant cela n'envoie plus de message.

Voila ce que j'ai fait :

index :
<head><?php
$jour = date("d");
$mois = date("m");
$annee = date("Y");
$heure = date("H");
$minute = date("i");
$now = "$jour/$mois/$annee à $heure:$minute";
$day = "$jour.$mois.$annee";?>
</head>
<form action="minichat_post.php" method="post">
<p>
    <input type="text" name="pseudo" /><br />
<textarea name="message" rows="8" cols="45">
Votre message ici.
</textarea><br />
    <input type="submit" value="Valider" />
</p>
</form>

<?php
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
$reponse = $bdd->query('SELECT pseudo, message, DATE_FORMAT(date_info, \'%d/%m/%Y %Hh%imin%ss\') AS date_info FROM minichat ORDER BY id DESC');

while ($donnees = $reponse->fetch())
{
	echo '<p><strong>' . htmlspecialchars($donnees['pseudo']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</p>';
echo $donnees['date_info'] . '...';

}

$reponse->closeCursor(); // Termine le traitement de la requête

?>


minchatpost :
<head><?php
$jour = date("d");
$mois = date("m");
$annee = date("Y");
$heure = date("H");
$minute = date("i");
$now = "$jour/$mois/$annee à $heure:$minute";
$day = "$jour.$mois.$annee";?>
</head>
<?php
// Effectuer ici la requête qui insère le message
// Puis rediriger vers minichat.php comme ceci :

try
{
	$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
$reponse = $bdd->prepare("INSERT INTO 'minichat' ('ID', 'pseudo', 'message', 'date_info') VALUES(25, 'sss', 'Votre message ici.\r\n', '$now')");
$reponse->execute(array($_POST['pseudo'], $_POST['message'], $_POST['date_info']));

echo "Votre message a bien été ajouter";
header('Location: index.php');
?>
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
29 juin 2010 à 14:46
Dans ton insert met now() au lieu de $now car $now est au format 'd/m/Y à i:m'
au lieu de 'Y-m-d i:m' qui est le standard mysql
0
wadol54 Messages postés 7 Date d'inscription mardi 29 juin 2010 Statut Membre Dernière intervention 29 juin 2010
29 juin 2010 à 14:48
c'est fait mais aucun changement
$reponse = $bdd->prepare("INSERT INTO 'minichat' ('ID', 'pseudo', 'message', 'date_info') VALUES(25, 'sss', 'Votre message ici.\r\n', 'now()')");

j'ai essayer now() sans les parentheses au cas ou aucun changement aussi
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
29 juin 2010 à 14:49
c'est now() sans parenthèses NI simple quote (c'est une fonction pas une valeur...)
0
wadol54 Messages postés 7 Date d'inscription mardi 29 juin 2010 Statut Membre Dernière intervention 29 juin 2010
29 juin 2010 à 14:58
Désolé je suis pas doué :'s tu pourrais l'ajouter dans le bout de code s'il te plait ? :)
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
29 juin 2010 à 15:14
Oula...

Si tu teste directement sous wamp tu entre cette requête :


INSERT INTO 'minichat' ('ID', 'pseudo', 'message', 'date_info') VALUES(25, 'sss', 'Votre message ici.\r\n', now())
0
wadol54 Messages postés 7 Date d'inscription mardi 29 juin 2010 Statut Membre Dernière intervention 29 juin 2010
29 juin 2010 à 15:19
c'est fait aucune différence =D
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
29 juin 2010 à 15:21
Plutôt comme ceci :

INSERT INTO minichat (ID, pseudo, message, date_info) VALUES(25, 'sss', 'Votre message ici.\r\n', now())
0
wadol54 Messages postés 7 Date d'inscription mardi 29 juin 2010 Statut Membre Dernière intervention 29 juin 2010
29 juin 2010 à 15:23
je suis lourd :p toujours la meme chose ^^
0