[regler]type timestamp dans la bdd - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [regler]type timestamp dans la bdd (/showthread.php?tid=1945) Pages :
1
2
|
[regler]type timestamp dans la bdd - jo_link_noir - 31-10-2007 bonjour, j'ai un problème pour enregistrer une date dans la bdd, ça m'affiche toujours 0000-00-00 00:00:00, je comprend pas pourquoi... voici le code pour enregistrer les infos (d'ailleur il me les enregistres en double Oo) Code PHP :
et la structure de la bbd : Champ : date Type : timestamp Interclassement : Attributs : ON UPDATE CURRENT_TIMESTAMP Null : non Défaut : CURRENT_TIMESTAMP bah voilà, c'est juste ça le problème ^^ allez j'vais dormir, merci de m'avoir lu RE: type timestamp dans la bdd - V1nc3 - 31-10-2007 Le timestamp est un nombre du type 0000000000 donc très long. Quand tu fais un mktime, il te convertit ta date en format 0000000000, donc il faudrai l'enregistrer dans un champs de type BIGINT, puis quand tu en as besoin dans ton code php, tu fais date('d/m/Y', $ta_date) en mettant dans $ta_date le contenu de ton champs date (un BIGINT pour rappel). ps : si c'est l'heure actuel que tu veux mettre dans ta base, utilise plutot time() a ce moment la. RE: type timestamp dans la bdd - Loetheri - 31-10-2007 Pourquoi veux-tu garder un timestamp ? -_-' RE: type timestamp dans la bdd - naholyr - 31-10-2007 Le format "TIMESTAMP" en MySQL transite sous forme de chaine de caractère (il est cependant stocké en tant qu'entier long) au format "YYYY-MM-DD hh:mms" il ne comprend donc pas l'entier qui tu lui envoies. Au lieu de mktime() (qui prend des paramètres, quelle drôle d'idée de l'appeler sans aucun paramètre, autant appeler directement time() non ?), il faut donc utiliser date('Y-M-D h:i') RE: type timestamp dans la bdd - Sephi-Chan - 31-10-2007 Non, non. Si ton champ est de type TIMESTAMP, tu ne mets rien lors de l'insertion, comme si le champ n'existait pas. Il va automatiquement prendre le TIMESTAMP actuel si tu prends soin de lui mettre CURENT_TIMESTAMP comme valeur par défaut. Sephi-Chan RE: type timestamp dans la bdd - jo_link_noir - 31-10-2007 j'ai éssayé tous ce que vous avez dit : date('Y-d-m H:i'), time() et rien mais ça enregistre toujours 0000-00-00 00:00:00... RE: type timestamp dans la bdd - Sephi-Chan - 31-10-2007 Sephi-Chan a écrit :Non, non. RE: type timestamp dans la bdd - jo_link_noir - 31-10-2007 oui j'ai rien mi Code PHP :
c'est comme ça non ? RE: type timestamp dans la bdd - V1nc3 - 31-10-2007 Sinon fais comme je t'ai dis... RE: type timestamp dans la bdd - Sephi-Chan - 31-10-2007 Je sais pas. Essaye de prendre l'habitude de citer les champs que tu remplies. Ça te permet de ne pas avoir à modifier tes requêtes si tu changes le schéma de ta BdD, et cela permet aussi de ne remplir que les champs utiles. Par exemple : Code PHP :
Ainsi, tu laisses le champ qui contient les dates se remplir seul. Il faut cependant que tu ai coché la case CURRENT_TIMESTAMP en valeur par défaut pour ton champ date, dans phpMyAdmin. Et n'écoute pas ceux qui te disent de stocker le timestamp en utilisant celui de PHP. Sephi-Chan |