PHP clé primaire DateHeure

Résolu/Fermé
mimi8210 Messages postés 167 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 29 avril 2014 - 7 juin 2010 à 14:29
lys44 Messages postés 57 Date d'inscription mardi 25 mai 2010 Statut Membre Dernière intervention 21 mars 2011 - 8 juin 2010 à 15:49
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...



A voir également:

9 réponses

lys44 Messages postés 57 Date d'inscription mardi 25 mai 2010 Statut Membre Dernière intervention 21 mars 2011 5
7 juin 2010 à 14:37
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
0
mimi8210 Messages postés 167 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 29 avril 2014 10
7 juin 2010 à 14:48
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... =/
0
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
Modifié par naruto-94 le 7/06/2010 à 15:55
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"))");
0
xMiLeY Messages postés 68 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 15 juin 2010 7
Modifié par xMiLeY le 7/06/2010 à 16:07
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 :/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lys44 Messages postés 57 Date d'inscription mardi 25 mai 2010 Statut Membre Dernière intervention 21 mars 2011 5
7 juin 2010 à 16:17
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
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
7 juin 2010 à 16:21
Il faut déclarer ton champs comme DATETIME puis tu met la date et heure courante grâce à
INSERT INTO table(date) VALUE(NOW())
0
lys44 Messages postés 57 Date d'inscription mardi 25 mai 2010 Statut Membre Dernière intervention 21 mars 2011 5
7 juin 2010 à 16:23
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...
0
mimi8210 Messages postés 167 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 29 avril 2014 10
8 juin 2010 à 15:01
Pour régler mon problème, j'ai mis mon champ en type Varchar...
Merci à tous pour vos conseils!
0
lys44 Messages postés 57 Date d'inscription mardi 25 mai 2010 Statut Membre Dernière intervention 21 mars 2011 5
8 juin 2010 à 15:49
D'accord :)

De rien ;)
0