erreur de date dans livre d or
Forum Programmation : erreur de date dans livre d or
bonjour à tous,
j' ai créé un livre d' or, il fonctionne mais la date et l' heure apparaissent comme ça: 0000-00-00 00:00:00
d' ou vient le probleme?
merci de m' aider
amicalement
Message édité par carole33 le 02-10-2006 à 16:18:08
le problème peut avoir deux causes:
1) la date n'est pas (ou mal) enregistrée dans ta base
2) la date est mal reprise dans ta base.
une erreur fréquente est d'appeler le champ date... date qui est un mot clé réservé en mysql
Répondre à crazycat@idn
salut,
j ai bien mis date dans le champ date
datetime dans type
not null
puis defaut: 0000-00-00 00:00:00
si ça peut t aider
merci
Répondre à carole33
il me faudrait savoir comment s'appelle ton champ date dans la base et les codes que tu utilises pour insérer en base et extraire.
Répondre à crazycat@idn
re,
dans ma base, mon champ date s appelle date
voici le script:
<?php
require_once('Connections/connect.php'); ?>
<?php
$currentPage = $_SERVER["PHP_SELF"];
$maxRows_info = 20;
$pageNum_info = 0;
if (isset($_GET['pageNum_info'])) {
$pageNum_info = $_GET['pageNum_info'];
}
$startRow_info = $pageNum_info * $maxRows_info;
mysql_select_db($database_connect, $connect);
$query_info = "SELECT * FROM guestbook ORDER BY id DESC";
$query_limit_info = sprintf("%s LIMIT %d, %d", $query_info, $startRow_info, $maxRows_info);
$info = mysql_query($query_limit_info, $connect) or die(mysql_error());
$row_info = mysql_fetch_assoc($info);
if (isset($_GET['totalRows_info'])) {
$totalRows_info = $_GET['totalRows_info'];
} else {
$all_info = mysql_query($query_info);
$totalRows_info = mysql_num_rows($all_info);
}
$totalPages_info = ceil($totalRows_info/$maxRows_info)-1;
$queryString_info = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_info" ) == false &&
stristr($param, "totalRows_info" ) == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_info = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_info = sprintf("&totalRows_info=%d%s", $totalRows_info, $queryString_info);
?>
ce code dans le formulaire:
<input type="hidden" name="date" value="<?php echo $row_info['date'];?>">
et ça c est le script sur la page qui recupere les messages:
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "" )
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "" ) ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "" ) ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "" ) ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "" ) ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "" ) ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1" )) {
$insertSQL = sprintf("INSERT INTO guestbook (message, pseudo, email, site, `date`) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['message'], "text" ),
GetSQLValueString($_POST['pseudo'], "text" ),
GetSQLValueString($_POST['email'], "text" ),
GetSQLValueString($_POST['site'], "text" ),
GetSQLValueString($_POST['date'], "date" ));
mysql_select_db($database_connect, $connect);
$Result1 = mysql_query($insertSQL, $connect) or die(mysql_error());
$insertGoTo = "livre_d_or.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
$currentPage = $_SERVER["PHP_SELF"];
$maxRows_info = 20;
$pageNum_info = 0;
if (isset($_GET['pageNum_info'])) {
$pageNum_info = $_GET['pageNum_info'];
}
$startRow_info = $pageNum_info * $maxRows_info;
mysql_select_db($database_connect, $connect);
$query_info = "SELECT * FROM guestbook ORDER BY id DESC";
$query_limit_info = sprintf("%s LIMIT %d, %d", $query_info, $startRow_info, $maxRows_info);
$info = mysql_query($query_limit_info, $connect) or die(mysql_error());
$row_info = mysql_fetch_assoc($info);
if (isset($_GET['totalRows_info'])) {
$totalRows_info = $_GET['totalRows_info'];
} else {
$all_info = mysql_query($query_info);
$totalRows_info = mysql_num_rows($all_info);
}
$totalPages_info = ceil($totalRows_info/$maxRows_info)-1;
$queryString_info = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_info" ) == false &&
stristr($param, "totalRows_info" ) == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_info = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_info = sprintf("&totalRows_info=%d%s", $totalRows_info, $queryString_info);
?>
merci encore
Répondre à carole33
Remplace: <input type="hidden" name="date" value="<?php echo $row_info['date'];?>">
par:
Code :
|
Répondre à crazycat@idn
salut,
merci pour ton aide, j ai fais ce que tu m' as dis, la date et l heure s affiche mais tous les messages sont à la date d aujourd hui et c est l heure actuelle (les minutes tournent...)
n y a t il pas autre chose a changer dans le script du fait que j ai changé un bout de code ?
dans ma BDD, je dois mettre null ou not null pour la date ?
merci encore
on y est presque, j' suis sure que vous allez y arriver
lol
a priori, c'est not null.
Par contre, pour ta date qui s'affiche avec les minutes qui tournent... c'est comme ça sur tous les messages?
Les messages d'avant la modification devraient toujours indiquer 0000-00-00 00:00:00 et ceux d'aujourd'hui devraient te donner 2006-10-03 HH:II:SS (variable en fonction de l'heure de post).
Répondre à crazycat@idn
oui c est bien ça pour la date mais les messages tests que j ai posté hier sont à la date d aujourd hui (ça je pense que c est normal puisque j ai modifié le code aujourd hui) mais ça me met l heure actuelle au moment où j ouvre ma page et pas l heure où a été posté le message !
est ce que je peux t envoyer mon lien en MP pour que tu puisses voir ?
merci
oui, envoit donc...
je regarderais un peu plus avant
Répondre à crazycat@idn
Il y a 1895 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
