Intégrer fonction date dans script php

wadol54 Messages postés 8 Statut Membre -  
wadol54 Messages postés 8 Statut Membre -
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 3452 Statut Membre 369
 


$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 3121 Statut Contributeur 217
 
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 3452 Statut Membre 369
 
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 8 Statut Membre
 
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 3121 Statut Contributeur 217
 
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 3452 Statut Membre 369
 
Ou en SQL :

INSERT INTO table(date) VALUES (now());
0
wadol54 Messages postés 8 Statut Membre
 
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 3452 Statut Membre 369
 
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 8 Statut Membre
 
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 3452 Statut Membre 369
 
c'est now() sans parenthèses NI simple quote (c'est une fonction pas une valeur...)
0
wadol54 Messages postés 8 Statut Membre
 
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 3452 Statut Membre 369
 
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 8 Statut Membre
 
c'est fait aucune différence =D
0
Breub62 Messages postés 3452 Statut Membre 369
 
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 8 Statut Membre
 
je suis lourd :p toujours la meme chose ^^
0