PHP clé primaire DateHeure

Résolu
mimi8210 Messages postés 178 Statut Membre -  
lys44 Messages postés 59 Statut Membre -
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 59 Statut Membre 5
 
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 178 Statut Membre 10
 
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 904 Statut Membre 188
 
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 73 Statut Membre 7
 
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 59 Statut Membre 5
 
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 3452 Statut Membre 369
 
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 59 Statut Membre 5
 
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 178 Statut Membre 10
 
Pour régler mon problème, j'ai mis mon champ en type Varchar...
Merci à tous pour vos conseils!
0
lys44 Messages postés 59 Statut Membre 5
 
D'accord :)

De rien ;)
0