|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : avril 2007 Messages : 22 ![]() |
En fait je voudrais récupérer le dernier Numéro de licencies rentrés et lui ajouter 1 quelqu'un aurait-il une solution voici mon code
Code php :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2003 Messages : 2 018 ![]() |
Bonjour,
Pourquoi ne mets tu pas ton champ en AUTOINCREMENT ? 1 : ça t'éviteras de faire de savants calculs qui , en cas de concurrence (de requêtes) , pourraient s'avérer hasardeux. 2 : Tu vas gagner du temps 3 : C'est fait pour !
__________________
N1bus Modérateur Web / PHP Aucune demande technique ne sera traitée par MP . Merci PHP/GD : Génération d'un code-barre Code 39 FCKEditor : Modifier la largeur des listes déroulantes PHP/e-Commerce : Installation d'une solution de paiement en ligne SIPS-ATOS |
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Inscription : avril 2007 Messages : 313 ![]() |
Bonjour,
L'autoincrement n'est pas toujours souhaitable pour plusieurs raisons, notamment qu'une suppression d'enregistrement fait qu'on perd la référence dans le champ autoincrémenté. Le numéro effacé devient irrécupérable. C'est parfois gênant, surtout sur des tables qui grossissent vite et qu'il faut maintenir en faisant de l'effacement/archivage, puis de la récupération d'identifiant pour les récupérer. L'idée, si le champ n'est pas en autoincrement, serait peut-être de récupérer la plus grande valeur du champ avec la fonction SQL MAX(), et d'y ajouter 1. Code :
SELECT MAX(Num_licencies) FROM licencies; Sinon, tu peux essayer ça, mais je ne suis pas sûr de mon coup: $sql = "INSERT INTO licencies(Nom_licencies, Num_licencies, Prenom_licencies,club, path_photo, date_naissance) VALUES('$nom',MAX(Num_licencies)+1,'$prenom','$club','$path_photo','$date_naiss')"; Je ne suis pas sûr que l'on puisse utiliser MAX dans cette partie de la requête, je crois que c'est utilisable uniquement dans un SELECT (à vérifier), donc dans ce cas il faut passer par une première requête sélection comme je l'indiquais au début. Sinon, sur un champ autoincrement, c'est très facile de récupérer le dernier numéro d'identifiant créé, grâce à la fonction SQL LAST_INSERT_ID() |
|
|
00
|
|
|
#4 | ||
![]() ![]() Inscription : janvier 2003 Messages : 2 018 ![]() |
Citation:
En cas d'une insertion concurrente, tu n'es absolument pas certain d'envoyer le dernier id + 1 Citation:
__________________
N1bus Modérateur Web / PHP Aucune demande technique ne sera traitée par MP . Merci PHP/GD : Génération d'un code-barre Code 39 FCKEditor : Modifier la largeur des listes déroulantes PHP/e-Commerce : Installation d'une solution de paiement en ligne SIPS-ATOS |
||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 22 ![]() |
Hard a très bien résumé ce que je voulais faire lauto increment c'est bien mais si je teste et que je supprime des champs bah il ne se remet jamais à 0 que dans ce cas t'es sur d'avoir le numéro suivant donc vous me conseillez quoi alors car le
Code :
SELECT max(Num_licencies)+1 FROM Licencies en fait faudrait récupérer le résultat de cette requête puis lui ajouter 1 dans le INSERT maintenant je ne sais pas comment |
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : janvier 2003 Messages : 2 018 ![]() |
si tu es en test et que tu veux remettre à 0 (c'est à dire vider la table),
utilise TRUNCATE TABLE matable Le champ AUTOINCREMENT sera à nouveau à 0
__________________
N1bus Modérateur Web / PHP Aucune demande technique ne sera traitée par MP . Merci PHP/GD : Génération d'un code-barre Code 39 FCKEditor : Modifier la largeur des listes déroulantes PHP/e-Commerce : Installation d'une solution de paiement en ligne SIPS-ATOS |
|
|
00
|
|
|
#7 | |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 22 ![]() |
Citation:
Je sais je ne fais pas dans le plus simple mais bon...
|
|
|
|
00
|
|
|
#8 | ||
![]() ![]() Inscription : janvier 2003 Messages : 2 018 ![]() |
Citation:
Citation:
Si tu remets ton champ ID à 0 c'est que ta table doit être vide. C'est vrai que t'es en train de te compliquer la vie...
__________________
N1bus Modérateur Web / PHP Aucune demande technique ne sera traitée par MP . Merci PHP/GD : Génération d'un code-barre Code 39 FCKEditor : Modifier la largeur des listes déroulantes PHP/e-Commerce : Installation d'une solution de paiement en ligne SIPS-ATOS |
||
|
|
00
|
|
|
#9 | |
|
Membre confirmé
![]() Inscription : avril 2007 Messages : 313 ![]() |
Citation:
|
|
|
|
00
|
|
|
#10 |
![]() ![]() Inscription : janvier 2003 Messages : 2 018 ![]() |
a mon avis l'erreur c'est le +1
ceci devrait marcher Code :
SELECT max(Num_licencies) FROM Licencies
__________________
N1bus Modérateur Web / PHP Aucune demande technique ne sera traitée par MP . Merci PHP/GD : Génération d'un code-barre Code 39 FCKEditor : Modifier la largeur des listes déroulantes PHP/e-Commerce : Installation d'une solution de paiement en ligne SIPS-ATOS |
|
|
00
|
|
|
#11 | |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 22 ![]() |
Citation:
Code :
SELECT max(Num_licencies) FROM Licencies |
|
|
|
00
|
|
|
#12 | ||
![]() ![]() Inscription : janvier 2003 Messages : 2 018 ![]() |
Code PHP :
__________________
N1bus Modérateur Web / PHP Aucune demande technique ne sera traitée par MP . Merci PHP/GD : Génération d'un code-barre Code 39 FCKEditor : Modifier la largeur des listes déroulantes PHP/e-Commerce : Installation d'une solution de paiement en ligne SIPS-ATOS |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com