PHP clé primaire DateHeure
Résolu
mimi8210
Messages postés
167
Date d'inscription
Statut
Membre
Dernière intervention
-
lys44 Messages postés 57 Date d'inscription Statut Membre Dernière intervention -
lys44 Messages postés 57 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Lors d'un nouvel enregistrement dans une table de ma base de données, je voudrai que ma clé primaire contiennent la date et l'heure actuelle. Par exemple si au moment où mon fichier.php s'exécute nous sommes le 07/06/2010 et qu'il est exactement 14h20min36sec, je voudrais que ma clé primaire soit alors : 070610142036 . Pour trouver la solution, j'ai essayé la fonction date de la manière suivante : date("dmYHis")
En effet, lorsque je teste le résultat de cette fonction grâce à un ' echo $mavariable; ' sur ma page d'accueil, ca marche parfaitement ! Par contre, lorsque je l'utilise dans mon fichier.php comme ceci :
$mavariable=date("dmYHis");
mysql_query("INSERT INTO MATABLE VALUES ($mavariable)");
Il ne me met pas du tout la valeur que je souhaite, il me met comme valeur : 004294967295. Et si je réessaye à nouveau, il me met un message d'erreur comme quoi cette clé primaire existe déjà, bref en gros il me retourne la même numéro...
Je précise que ma clé primaire est de type INT (avec assez de caractères), car je souhaite que ma clé primaire soit à première vue un numéro et nom une date/heure.
En espérant avoir été assez claire, j'espère que quelqu'un aura une solution à mon problème...
Lors d'un nouvel enregistrement dans une table de ma base de données, je voudrai que ma clé primaire contiennent la date et l'heure actuelle. Par exemple si au moment où mon fichier.php s'exécute nous sommes le 07/06/2010 et qu'il est exactement 14h20min36sec, je voudrais que ma clé primaire soit alors : 070610142036 . Pour trouver la solution, j'ai essayé la fonction date de la manière suivante : date("dmYHis")
En effet, lorsque je teste le résultat de cette fonction grâce à un ' echo $mavariable; ' sur ma page d'accueil, ca marche parfaitement ! Par contre, lorsque je l'utilise dans mon fichier.php comme ceci :
$mavariable=date("dmYHis");
mysql_query("INSERT INTO MATABLE VALUES ($mavariable)");
Il ne me met pas du tout la valeur que je souhaite, il me met comme valeur : 004294967295. Et si je réessaye à nouveau, il me met un message d'erreur comme quoi cette clé primaire existe déjà, bref en gros il me retourne la même numéro...
Je précise que ma clé primaire est de type INT (avec assez de caractères), car je souhaite que ma clé primaire soit à première vue un numéro et nom une date/heure.
En espérant avoir été assez claire, j'espère que quelqu'un aura une solution à mon problème...
A voir également:
- PHP clé primaire DateHeure
- Clé usb non détectée - Guide
- Clé windows 8 - Guide
- Formater clé usb - Guide
- Clé usb - Accueil - Stockage
- Clé bootable windows 10 - Guide
9 réponses
T'as essayé de convertir ta variable en type INT?
Avec une fonction dans ce genre :
$a="12"; // 12 étant une chaîne de caractère
$b=intval($a); //12 passe comme un nombre
Avec une fonction dans ce genre :
$a="12"; // 12 étant une chaîne de caractère
$b=intval($a); //12 passe comme un nombre
Je viens d'essayer ta solution, c'est le même problème que précédemment, mis à part que le numéro retourné est différent, mais reste toujours le même aussi... =/
essaye directement par la requête mysql et ses fonctions
mysql_query("INSERT INTO MATABLE VALUES (date_format(now(),"%d%m%Y%H%i%s"))");
mysql_query("INSERT INTO MATABLE VALUES (date_format(now(),"%d%m%Y%H%i%s"))");
un champ int est pas limité à 11 en taille ds MySql? ALors que tu lui envois 12 chiffres?
Et question aux autres, si c'est un INT son champ, comment ca se fait que y'a deux 0 devant...? Je croyais pas ça possible sous mysql :/
Et question aux autres, si c'est un INT son champ, comment ca se fait que y'a deux 0 devant...? Je croyais pas ça possible sous mysql :/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Il me semble qu'un Int peut avoir au maximum une taille de 4 Octet... Du coup c'est possible que 12 chiffres soit de trop.
Et effectivement il ne peut y avoir de 0 en début d'un champ de type Int... bien vu!
Sauf bien sur pour le 0 tout seul mais sinon lorsque l'on saisit 01, la BDD ne retient que 1. gg
Et effectivement il ne peut y avoir de 0 en début d'un champ de type Int... bien vu!
Sauf bien sur pour le 0 tout seul mais sinon lorsque l'on saisit 01, la BDD ne retient que 1. gg
Il faut déclarer ton champs comme DATETIME puis tu met la date et heure courante grâce à
INSERT INTO table(date) VALUE(NOW())
Effectivement la solution la plus simple serait que son champ soit de type DATETIME, cependant elle ne désire pas que ça en soit un, mais qu'il soit de type Integer...