Fonction date et BDD [Résolu/Fermé]

Signaler
Messages postés
12
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
21 avril 2009
-
Messages postés
12
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
21 avril 2009
-
Bonjour,
J'ai commencer le php hier, et suis entrain de travailler sur un livre d'or (code basé du site du zéro)...
J'aimerais enregistrer la date de chaque nouveau message.
J'ai donc creé un champ date de type DATETIME dans phpMyAdmin.

Le probleme c'est que je ne sais pas comment l'initialiser ni le récupéré...
J'avais mis :

input type="hidden"  name="date" value="<?php date("Y-m-d H:i:00"); 



Mais apres alors que j'arrive a récupéré le pseudo, le message.. Je suis perdu pour la date...
J'ai essayé de faire :

$datum = date('d/m/Y',$donnees['date']);
echo '<p><strong>' . $donnees['pseudo'] . '</strong> a écrit à '.$datum.' :<br />' . $donnees['message'] . '</p>';

Je n'ai aucune idee :'(
Donc si quelqu'un pouvait m'aider ca serait cool.

Merci d'avance

8 réponses

Bonjour,

Peux tu nous montrer la requête qui te permet de récupérer le pseudo?
Messages postés
12
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
21 avril 2009

<form method="post" action="livreor.php">
        <p align="center">Mon site vous plaît ? Laissez-moi un message !</p>
        <p align="center">
            Pseudo : <input name="pseudo" value="
				<?php
					if (isset($_POST['pseudo'])) {
						echo $_POST['pseudo'];
					}
				?> 			
				
				"/><br />
            Message :<br />
            <textarea name="message" rows="12" cols="135"></textarea><br />
            <input type="submit" value="Envoyer" />
			<input type="hidden"  name="date" value="<?php date("Y-m-d H:i:00"); ?>" />
        </p>
    </form>




et pour recuperer :
if (isset($_POST['pseudo']) AND isset($_POST['message']))
	{
	    $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
	    $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); // De même pour le message
	    $message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
Enfaite je ne vois pas trop ton problème pour récupérer une date c'est très simple.

$date = $_POST['date'];

il te manque un echo :

<input type="hidden" name="date" value="<?php echo date("Y-m-d H:i:00"); ?>" />
Messages postés
12
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
21 avril 2009

bha mon probleme est qu'il m'affiche toujours la date 01/01/1970

Voici mon code complet :
<html >
   <head>
       <title>Livre d'or</title>
    </head>
    
	<body>
 
    <form method="post" action="livreor.php">
        <p align="center">Mon site vous plaît ? Laissez-moi un message !</p>
        <p align="center">
            Pseudo : <input name="pseudo" value="
				<?php
					if (isset($_POST['pseudo'])) {
						echo $_POST['pseudo'];
					}
				?> 			
				
				"/><br />
            Message :<br />
            <textarea name="message" rows="12" cols="135"></textarea><br />
            <input type="submit" value="Envoyer" />
			<input type="hidden"  name="date" value="<?php date("Y-m-d H:i:00"); ?>" />
											  
        </p>
    </form>
 
    <p class="pages" align="center">
 
	<?php
	mysql_connect("localhost", "root", "");
	mysql_select_db("livreor");
	 
	// --------------- Etape 1 -----------------
	// Si un message est envoyé, on l'enregistre
	// -----------------------------------------
	 
	if (isset($_POST['pseudo']) AND isset($_POST['message']))
	{
	    $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
	    $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); // De même pour le message
	    $message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
		$date = $_POST['date'];
	    // On peut enfin enregistrer :o)
	    mysql_query("INSERT INTO livreor VALUES('', '$pseudo', '$message ', '$date')");
	}
	 
	// --------------- Etape 2 -----------------
	// On écrit les liens vers chacune des pages
	// -----------------------------------------
	 
	// On met dans une variable le nombre de messages qu'on veut par page
	$nombreDeMessagesParPage = 10; // Essayez de changer ce nombre pour voir :o)
	// On récupère le nombre total de messages
	$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
	$donnees = mysql_fetch_array($retour);
	$totalDesMessages = $donnees['nb_messages'];
	// On calcule le nombre de pages à créer
	$nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
	// Puis on fait une boucle pour écrire les liens vers chacune des pages
	echo 'Page : ';
	for ($i = 1 ; $i <= $nombreDePages ; $i++)
	{
	    echo '<a href="livreor.php?page=' . $i . '">' . $i . '</a> ';
	}
	?>
	 
	
	 
	<?php
	 
	
	// --------------- Etape 3 ---------------
	// Maintenant, on va afficher les messages
	// ---------------------------------------
	echo '</br> Il y a un total de ' .$totalDesMessages. '  messages dans le livre d\'or à ce jour...</br>'
	?> </p> <?php
	if (isset($_GET['page']))
	{
	        $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
	}
	else // La variable n'existe pas, c'est la première fois qu'on charge la page
	{
	        $page = 1; // On se met sur la page 1 (par défaut)
	}
	 
	// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
	$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
	 
	$reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
	 
	while ($donnees = mysql_fetch_array($reponse))
	{
	        $datum = date('d/m/Y',$donnees['date']);
			echo '<p><strong>' . $donnees['pseudo'] . '</strong> a écrit à '.$datum.' :<br />' . $donnees['message'] . '</p>';
	}
	 
	mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
	?>
	 
	</body>
</html>


Voici le code complet....
Car je ne trouve vraiment pas !
J'ai enfin compris ton problème

voici une fonction qui te retourne ta date au format français.

function reverseDate($date){ // conversion date us -> date fr
if($date !=""){
$split = split("-",$date); //on extrait en fonction du séparateur
$annee = $split[0];
$mois = $split[1];
$jour = $split[2];
return "$jour"."/"."$mois"."/"."$annee";// retourne un format JJ/MM/AAAA
}
}

exemple : echo reverseDate($donnees['date'])
Messages postés
12
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
21 avril 2009

okok un tout grand merci !
ca a l'air d'aller...
Je vais essayer maintenant de comprendre la tite fonction !

Merci 1000x



Resolution :
function reverseDate($date){ // conversion date us -> date fr 
   if($date !=""){ 
       $split = split("-",$date); //on extrait en fonction du séparateur 
       $annee = $split[0]; 
       $mois = $split[1]; 
       $jour = $split[2]; 
       return "$jour"."/"."$mois"."/"."$annee";// retourne un format JJ/MM/AAAA 
    }  
} 


Au faite il y a quand meme un petit probleme ... le split n'est pas bon car il y a aussi l'heure...

Le format de sortie est donc : d h:i / m / Y C'est plutot embetant...
Mais de rien !!!
Messages postés
12
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
21 avril 2009

Voila commen j'ai finalement résolu le probleme... En me basant sur ca premiere function !

function reverseDate($date){ // conversion date us -> date fr 
	if($date !=""){ 
		$split = split("-",$date); //on extrait en fonction du séparateur 
		$annee = $split[0]; 
		$mois = $split[1]; 
		$jourTemp = $split[2]; 
		$split2 = split(" ",$jourTemp);
		$jour = $split2[0]; 
		$heure = $split2[1]; 
		
		return "$jour"."/"."$mois"."/"."$annee"." à "."$heure";// retourne un format JJ/MM/AAAA 
		} 
	}
}


Ceci afin de résoudre le format DATETIME au lieu de DATE comme la première fonction...

Encore merci à DOUDI