[timestamp] Erreur d'affichage
scriptiz
Messages postés
1494
Statut
Membre
-
scriptiz Messages postés 1494 Statut Membre -
scriptiz Messages postés 1494 Statut Membre -
Bonjour,
C'est la première fois que j'ai ce soucis et je n'ai vraiment aucunes idée d'où il vient étant donné que j'ai souvent utiliser les timestamps et ça a toujours bien marché.
Je vous explique donc l'origine du soucis, j'ai dans ma base de données MySQL une table dont un des champs s'appelle "timestamp" et dans lequel je dépose la valeur de "time()" lorsqu'un utilisateur envoie un message. Voici comment les messages sont insérés dans la table :
Jusque là tout vas bien, les enregistrements sont bien enregistrés, ... je me retrouve donc avec 5 messages dont voici les timestamp que je vois dans phpmyadmin :
- 1241534842
- 1241536005
- 1241538237
- 1241538872
- 1241542452
Le soucis, c'est lorsque je les récupèrent, je les mets dans une fonction date() que voici :
Et il me sort pour toutes les dates, le 1er janvier 1970 comme si $message['timestamp'] était égal à zéro.
J'ai donc vérifier ce que timestamp contenait, et curieusement, lorsque je fais un "echo $message['timestamp'];" il m'affiche une lettre (genre un t ou T ou m ou d'autres trucs bizarres).
Par contre si je fait un "print_r($message);" là il m'affiche le bon timestamp ainsi que tout ce qui se trouve dans $message correctement.
Donc là je sèche vraiment, comment se fait-il que print_r() sorte les bonnes valeurs et qu'un simple echo ne me renvoie qu'une lettre ?
D'avance merci pour votre aide car là je galère aussi bien en local que sur mon hébergeur.
C'est la première fois que j'ai ce soucis et je n'ai vraiment aucunes idée d'où il vient étant donné que j'ai souvent utiliser les timestamps et ça a toujours bien marché.
Je vous explique donc l'origine du soucis, j'ai dans ma base de données MySQL une table dont un des champs s'appelle "timestamp" et dans lequel je dépose la valeur de "time()" lorsqu'un utilisateur envoie un message. Voici comment les messages sont insérés dans la table :
$query = sprintf("INSERT INTO guestbook (name, email, message, timestamp) VALUES ('%s', '%s', '%s', '%d')",
mysql_real_escape_string($_POST['name']),
mysql_real_escape_string($_POST['email']),
mysql_real_escape_string($_POST['message']),
time());
mysql_query($query, $dbc)or die($sql_error.mysql_error());
Jusque là tout vas bien, les enregistrements sont bien enregistrés, ... je me retrouve donc avec 5 messages dont voici les timestamp que je vois dans phpmyadmin :
- 1241534842
- 1241536005
- 1241538237
- 1241538872
- 1241542452
Le soucis, c'est lorsque je les récupèrent, je les mets dans une fonction date() que voici :
echo " le ".date("j/m/Y \&\a\g\\r\av\e\; H\hi",$message['timestamp']);
Et il me sort pour toutes les dates, le 1er janvier 1970 comme si $message['timestamp'] était égal à zéro.
J'ai donc vérifier ce que timestamp contenait, et curieusement, lorsque je fais un "echo $message['timestamp'];" il m'affiche une lettre (genre un t ou T ou m ou d'autres trucs bizarres).
Par contre si je fait un "print_r($message);" là il m'affiche le bon timestamp ainsi que tout ce qui se trouve dans $message correctement.
Donc là je sèche vraiment, comment se fait-il que print_r() sorte les bonnes valeurs et qu'un simple echo ne me renvoie qu'une lettre ?
D'avance merci pour votre aide car là je galère aussi bien en local que sur mon hébergeur.
A voir également:
- [timestamp] Erreur d'affichage
- Affichage double ecran - Guide
- Windows 11 affichage classique - Guide
- Erreur upes 1025 - Forum Téléviseurs
- Erreur t32 ✓ - Forum Livebox
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
4 réponses
moi a ta place j'éviterait de mettre des noms réservés genre timestamp comme non de champ dans tes tables
LOL ,
Timestanp j'aoute automatiquement dans ta table , donne lui comme structure un timestanp , tu va rire , sa j'ajoute tout seul ( auto_increment )
Enfin moi il me semble que c'est ce que j'ai fait !
Bonne chance
ROmi
Timestanp j'aoute automatiquement dans ta table , donne lui comme structure un timestanp , tu va rire , sa j'ajoute tout seul ( auto_increment )
Enfin moi il me semble que c'est ce que j'ai fait !
Bonne chance
ROmi
J'ai été bête l'erreur c'était que la variable dans laquelle je récupérai la requête fetchée, j'y affectais quelque chose d'autre avant de vouloir en traiter le champs timestamp :
exemple :
comme quoi ce sont souvent les erreurs les plus bêtes qui nous en font le plus baver :P
exemple :
$sql_message = mysql_query(.........)or die(....); $message = mysql_fetch_array($sql_message); $name = $message['name']; $message = $message['content']; echo $message['timestamp'];
comme quoi ce sont souvent les erreurs les plus bêtes qui nous en font le plus baver :P