Se connecter avec
S'enregistrer | Connectez-vous

[RESOLU] Date dans livre d'or

Dernière réponse : dans Programmation

Bonjour
j'ai créé un livre d'or sur mon site, mais j'arrive pas inserer la date automatiquement quand quelqu'un poste un message dessus.
comment je dois faire?
merci!

  1. <?php
  2. mysql_connect("localhost", "*****", "*****");
  3. mysql_select_db("livreor");
  4.  
  5.  
  6. if (isset($_POST['pseudo']) AND isset($_POST['message']))
  7. {
  8.  
  9. $pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES);
  10.  
  11. $message = htmlentities($_POST['message'], ENT_QUOTES);
  12. $message = nl2br($message);
  13.  
  14. mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "')");
  15.  
  16.  
  17. mysql_close();
  18. echo' <script language="javascript"
  19. type="text/javascript">
  20. <!--
  21. window.location.replace(
  22. "<a href="http://middleworld.free.fr/livreor.php" target="_blank">http://middleworld.free.fr/livreor.php</a>");
  23. -->
  24. </script>';
  25.  
  26. }
  27.  
  28. ?>
  29.  
  30.  
  31. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>">
  32. <html xmlns="<a href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a>" xml:lang="fr" >
  33. <head>
  34. <title>Livre d'or</title>
  35. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  36. <link rel="stylesheet" media="screen" type="text/css" title="Mon design" href="css_livreor.css" />
  37. <link rel="shortcut icon" type="image/x-icon" href="icone.png" />
  38. <style type="text/css">
  39. form, .pages
  40. {
  41. text-align:left;
  42. }
  43. </style>
  44. </head>
  45.  
  46. <body>
  47. <?php include("menu.php"); ?>
  48.  
  49.  
  50. <form method="post" action="livreor.php">
  51. <p>Vous aussi, signez ce magnifique livre d'or, et laissez à jamais votre trace sur ce site^^.</p>
  52.  
  53. <p>
  54. Pseudo :<br /> <input name="pseudo" /><br />
  55. Message :<br />
  56. <textarea name="message" rows="8" cols="35"></textarea> <br />
  57. <input type="submit" value="Envoyer" />
  58. </p>
  59. </form>
  60.  
  61. <p class="pages">
  62.  
  63. <?php
  64. $nombreDeMessagesParPage = 20;
  65.  
  66. $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
  67. $donnees = mysql_fetch_array($retour);
  68. $totalDesMessages = $donnees['nb_messages'];
  69.  
  70. $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
  71.  
  72.  
  73. echo 'Page : ';
  74. for ($i = 1 ; $i <= $nombreDePages ; $i++)
  75. {
  76. echo '<a href="livreor.php?page=' . $i . '">' . $i . '</a> ';
  77. }
  78.  
  79. ?>
  80.  
  81. </p>
  82.  
  83. <?php
  84.  
  85. if (isset($_GET['page']))
  86. {
  87. $page = $_GET['page'];
  88. }
  89. else
  90. {
  91. $page = 1;
  92. }
  93.  
  94. $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
  95.  
  96. $reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
  97.  
  98. while ($donnees = mysql_fetch_array($reponse))
  99. {
  100. echo '<p><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . $donnees['message'] . '</p>';
  101. }
  102.  
  103. mysql_close();
  104.  
  105. ?>
  106.  
  107. </body>
  108. </html>

Autres pages sur : resolu date livre

Lassé par la pub ? Créez un compte

Il faut rajouter un champ de type DATETIME et insérer dedans date("Y-m-d H:i:s").
Voici ta nouvelle requète (en partant du principe que ton champ d'horodatage est le dernier):
  1. mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "', '" . date("Y-m-d H:i:s") . "')" );

Merci... j'ai essayé... mais vu que je ne sais pas ou l'ajouter, quand je l'ajoute sa marche pas ^^

Citation :
Il faut rajouter un champ de type DATETIME

où?

Citation :
insérer dedans date("Y-m-d H:i:s" )

où? ^^

Merci encore

tu le rajoutes dans ta table avec phpMyAdmin ou en sql:
si c'est automatique tu peux lui mettre une valeur par defaut (sous mysql je suis pas sur de la syntaxe)
  1. alter table livreor add column creation_date datetime default now();

sans le default, tu rajoute l'instruction que t'as donne crazycat

effectivement je viens de lire que datetime n'accepte pas now() comme valeur, tu peux le changer en timestamp ou alors carrement enlever la valeur par defaut.

1-
  1. alter table livreor add column creation_date datetime;

  1. mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "', '" . date("Y-m-d H:i:s" ) . "')" );


2-
  1. alter table livreor add column creation_date timestamp default now();

par contre avec le default now(), tu dois spécifier les colonnes à insérer:
insert into livreor (col1,col2...) values (valcol1, valcol2...);
sans spécifier la valeur de creation_date, elle se met à la date/heure courante automatiquement.

EDIT: je crois que la difference entre le datetime et le timestamp et l'interval de validité des dates insérés

Voila, j'obtiens une chose correcte dans ma BDD... donc merci a vous deux!
par contre; pour appeller la date, et l'écrire sur ma page; il apres le pseudo; il faut que je rajoute quoi ci dessous??
  1. while ($donnees = mysql_fetch_array($reponse))
  2. {
  3. echo '<p><strong>' . $donnees['pseudo'] . '</strong>','</p>';
  4. }

merci!
Lassé par la pub ? Créez un compte
Tom's guide dans le monde