Numérotation d'un champs dans la base de données

Eléphanteau du PHP | 40 Messages

28 nov. 2005, 09:40

Salut à tous,

j'ai une base de données contenant des personnes. Il y a des personnes dans la base qui ont la même date de naissance. En rajoutant le champs de la date au champs du compteur (via concat p. ex.) , je dois obtenir qqch d'unique c'est à dire que le compteur doit me dire la combien-t-ième date j'ai:

Nom Date_Naiss Compteur

Pers1 28/05/2005 1
Pers2 28/05/2005 2
Pers3 28/05/2005 3
Pers4 03/08/2005 1
Pers5 12/11/2005 1
Pers6 31/01/2005 1
Pers7 31/01/2005 2

Ma question est, comment remplir automatiquement le champs compteur? Le moyen existe-t-il ?

Merci d'avance

CasalBoss01

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 nov. 2005, 10:24

le champ `Nom` ne te suffit t'il pas pour avoir quelquechose d'unique ?

De plus, au lieu de mettre un compteur en fonction de la date de naissance, ce qui me semble être une erreur de conception, je mettrais plutôt une clé primaire auto_increment qui te donnerais une table de la forme

Code : Tout sélectionner

ID Nom Date_Naiss 1 Pers1 28/05/2005 2 Pers2 28/05/2005 3 Pers3 28/05/2005 4 Pers4 03/08/2005 5 Pers5 12/11/2005 6 Pers6 31/01/2005 7 Pers7 31/01/2005
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 40 Messages

28 nov. 2005, 10:37

J'ai un champs ID auto_increment et tout ce qu'il faut pour disposer d'une table correctement indexée.

C'est seuelement que j'ai besoin d'avoir ce champs, pour pouvoir créer un répertoire pour chaque personne. Ce répertoire doit avoir comme nom la date de naissance. Si deux personnes ont la même date de naissance, il faut qu'il y ait un index derrière le nom du répertoire, car il ne peut exister deux répertoires avec le même nom.

Merci d'avance
Casalboss01

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 nov. 2005, 10:43

Et si tu te servait du nom de la personne ? Ou encore de l'identifiant ?
un truc comme "date_naissance_id"

Sinon, j'ai bien peur que avant d'enregistrer une nouvel personne, il te faille interroger la base pour voir si cette date de naissance n'est pas déjà attribuée et récupérer la plus grande valeur du compteur pour cette date
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 40 Messages

28 nov. 2005, 11:02

C'est ce que je vais faire.

Merci pour le conseil

Casalboss01