(Résolu) auto incrémentation d'un ID pour phpmyadmin

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : (Résolu) auto incrémentation d'un ID pour phpmyadmin

Re: auto incrémentation d'un ID pour phpmyadmin

par brother » 18 oct. 2011, 12:54

Bonjour,

Merci à tous et notamment à toi macgawel pour les explications sur la « Première Forme Normale », je vais me tourner vers (LA NORMALISATION) des données.
Eventuellement avec la création d’un ID_2011 différents en supplément, voir même par concaténation. etc.
< ?php
$mavar1 = "2011";
$mavar2 = "_";
$mavar3 = "$_POST['id']";
$mavar4 = ".$mavar1..$mavar2..$mavar3. ";
echo $mavar4;
?>
2011 pouvant être modifié selon le cas…
Je vais y réfléchir, merci.

Re: auto incrémentation d'un ID pour phpmyadmin

par Mazarini » 18 oct. 2011, 11:21

Je suis plutôt d'accord avec toi.
J'ai tendance à préférer une table du type (id,identifiant). Pour moi l'identifiant est une notion propre à l'utilisateur et je préfère ne pas prendre partie. Je limite la prise en compte des règles de constitution de l'identifiant à la création. En général, cet identifiant est déterminer pour facilité sa lecture et déterminer quelques informations sans consultation juste en lisant l'identifiant. Avec le même type de raisonnement, j'évite de considérer cet identifiant comme numérique et de m'en servir pour autre chose qu'un accès suite à la saisie d'un utilisateur.

Re: auto incrémentation d'un ID pour phpmyadmin

par macgawel » 18 oct. 2011, 09:42

Sauf erreur de ma part, il est possible de modifier le compteur qui sert à l'auto-incrément d'une table. Rien ne t'empêche de mettre 20110000 et de passer à 20120000 l'année prochaine.
Possible mais risqué...
Que se passera-t-il s'il y a 10 000 créations d'enregistrements ? #-o

Autres raisons de ne pas faire ça :
- 2011 est certainement l'année, la suite a priori un numéro d'ordre (numéro de facture par exemple).
=> Ton champ contient plusieurs informations.
Violation de la Première Forme Normale.

- comment gères-tu s'il y a une saisie en retard/avance ?
Parce que ça dépend de l'utilisation exacte de la table, mais c'est le genre de chose qui peut arriver régulièrement...

La bonne pratique, c'est de faire trois champs : MaTable ( ID*, Annee, Numero). A la limite tu peux te passer de l'ID et utiliser Annee + Numero comme clé primaire, mais ce n'est pas conseillé...

Re: auto incrémentation d'un ID pour phpmyadmin

par Mazarini » 18 oct. 2011, 09:29

Sauf erreur de ma part, il est possible de modifier le compteur qui sert à l'auto-incrément d'une table. Rien ne t'empêche de mettre 20110000 et de passer à 20120000 l'année prochaine.

Re: auto incrémentation d'un ID pour phpmyadmin

par Ryle » 17 oct. 2011, 23:17

Le problème c'est que "2011-000" c'est pas un nombre, donc pas d'auto-increment possible. D'autant que je suppose que ton objectif est d'avoir un incrément qui se réinitialise chaque année (chose que l'auto increment ne saura pas faire) ?

Il te faut donc gérer ce numéro toi même, à la place - voire en plus - d'un id géré par auto-increment..

(Résolu) auto incrémentation d'un ID pour phpmyadmin

par brother » 17 oct. 2011, 22:59

Bonjour,

Une question ridicule, dans la création d'une table, peut-on mettre un numéro comme celui ci-dessous en gras ?
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2011-000 ;
J'ai essayé bien sur, mais ça ne fonctionne pas comme ACCESS (par exemple)... :x
Donc ma question, comment peut-on créer ses propres numéros ID ?

Ou puis-je trouver ma source ?

Merci