Recuperé identifiant + 1 pour enregistrement

Résolu/Fermé
LiLou LiLa Messages postés 330 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 10 mars 2009 - 15 mai 2008 à 09:47
LiLou LiLa Messages postés 330 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 10 mars 2009 - 15 mai 2008 à 11:18
Bonjour,
je vous explique :
jai une table sortie sous mysql qui contient des sorties de cartouche
l identifiant est en auto increment
et j'aimerai dans un formulaire pour entrer une nouvelle sortie, avoir le dernier numero (+ 1 pour la nouvelle entrée)
c'est possible

aidez moi mercii d'avance !
A voir également:

4 réponses

LiLou LiLa Messages postés 330 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 10 mars 2009 12
15 mai 2008 à 09:56
et sans auto increment c'est possible?
de prendre la derniere valeur et de rajouter 1 ???
0
C'est relativement simple. Si j'ai bien compris, tu veux récupérer le nouvel id avant de l'enregistrer. Pour cela, je peux te conseiller de laisser tomber l'auto_increment mais en garder la logique.

Dans un premier temps, il faut récupérer le nouvel identifiant (id+1) de ta table (ta_table) pour de le mettre dans ton formulaire. Pour le récupérer, il suffit d'utiliser la fonction MAX() de MySQL. Elle te renvoit l'id de plus grand. Il suffit dès lors de l'incrémenter de 1, d'où la requête suivante :

SELECT MAX(id)+1 FROM ta_table;

Voilà pour l'affichage. Après au niveau de l'enregistrement, il faudra penser à récupérer cette valeur depuis ton formulaire également avec par exemple :

INSERT INTO ta_table (id, ...) VALUES (nouvel_id, ...);

Il doit bien sur exister d'autres possibilités, mais voilà déjà une piste. Je trouve que cette méthode peut être sujet de bugs si plusieurs personnes utilisent le script en même temps, il risque d'y avoir des conflits d'id lors de l'ajout.
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
15 mai 2008 à 10:36
Bonjour.

Il suffit de faire un SELECT MAX(Identifiant) FROM table;

Ceci dit, si c'est pour faire ce que je pense que tu veux fair, je ne suis pas sûr que ce soit une bonne idée.
Si ton objectif est d'afficher/utiliser l'identifiant sur la page de création de test enregistrements, tu ne pourras pas gérer la création concurentielle...
0
LiLou LiLa Messages postés 330 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 10 mars 2009 12
15 mai 2008 à 11:18
merci j y avais pas pensé
ça devrai marcher mais jai un peu coté connexion on dirait que ça va pas a la base mm si jai aucun message derreur
une idée?
0