Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1454 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  pb de auto incrementation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb de auto incrementation

n°252810
popov
Posté le 25-11-2002 à 11:37:41  profilanswer
 

voila jai un systeme d'inscription pour un lan en php et g un numeris de d'inscris en auto increment  
 
le pb c'est que j'ai suprimer un inscrit(le dernie) je voudrai baisse lauto inscrement de 1 pour kil remette le numeros din'scri ke je enlever
 
 
comment on fai*
 
 
edit: je sui sou multimania

mood
Publicité
Posté le 25-11-2002 à 11:37:41  profilanswer
 

n°252883
popov
Posté le 25-11-2002 à 13:02:47  profilanswer
 

personne  :??:

n°252884
methodlol
Posté le 25-11-2002 à 13:08:35  profilanswer
 

$num--; pr la decrementation (si c bien ça que tu voulais)


---------------
CGP Kingmax PC3700/PC4000 - DFI Lanparty UT nF3 250Gb
n°252885
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 25-11-2002 à 13:09:00  profilanswer
 

Ba j'ai pas de solution sous la main. Le problème ne sera pas PHP mais SQL. Cherche dans la doc http://www.mysql.com/documentation/mysql/bychapter/
 
Sinon, y a aussi la solution de vider toute la base et ça remet bien les compteurs à 0 [:ddr555]
Mais franchement, je vois pas tellement où est le souci qu'il y ait un "trou" dans les ID.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°252887
methodlol
Posté le 25-11-2002 à 13:11:43  profilanswer
 

ah ok comme ca
ben le nb d'inscrit c'est select count(*) from table_inscrits;


---------------
CGP Kingmax PC3700/PC4000 - DFI Lanparty UT nF3 250Gb
n°252895
popov
Posté le 25-11-2002 à 13:22:07  profilanswer
 

Methodlol a écrit a écrit :

$num--; pr la decrementation (si c bien ça que tu voulais)




 
 
euh tu pourrai me donne la requete complette a mettre dans phpadmin [:slytutu5]

n°252899
methodlol
Posté le 25-11-2002 à 13:30:36  profilanswer
 

non ca c du PHP pas du SQL
 
enfin si t'y tiens, un update table set id=id-1; devrait fonctionner
 
table = nom de ta table
id = ta colonne clé


---------------
CGP Kingmax PC3700/PC4000 - DFI Lanparty UT nF3 250Gb
n°252906
popov
Posté le 25-11-2002 à 13:45:44  profilanswer
 

Methodlol a écrit a écrit :

non ca c du PHP pas du SQL
 
enfin si t'y tiens, un update table set id=id-1; devrait fonctionner
 
table = nom de ta table
id = ta colonne clé




 
je fai dan phpadmin:
inscription_tbl set id=id-1;
 
 
inscription_tbl : ma table
id : c l'lid que je veu decremente
 
 
et sa marche pas

n°253092
cleanx
Posté le 25-11-2002 à 16:34:05  profilanswer
 

Heu en fait t'es obligé de changer la valeur de départ de ton AUTO_INCREMENT avec cette commande : "ALTER TABLE ta_table AUTO_INCREMENT = 50". Si tu exécute cette commande ton increment va repartir de 50. Donc si t'as n lignes dans ta table faut entrer n pour que ton entrée suivante corresponde à n+1, enfin ça je pense que t'aurais trouvé tout seul... :D


Message édité par cleanx le 25-11-2002 à 16:34:48
n°253102
omega2
Posté le 25-11-2002 à 16:42:14  profilanswer
 

cleanx a écrit a écrit :

Heu en fait t'es obligé de changer la valeur de départ de ton AUTO_INCREMENT avec cette commande : "ALTER TABLE ta_table AUTO_INCREMENT = 50". Si tu exécute cette commande ton increment va repartir de 50. Donc si t'as n lignes dans ta table faut entrer n pour que ton entrée suivante corresponde à n+1, enfin ça je pense que t'aurais trouvé tout seul... :D



Conaissais pas faut pas que je le perde ce truc et astuce. ;)

mood
Publicité
Posté le 25-11-2002 à 16:42:14  profilanswer
 

n°253119
Snipe Foo
Head Shot !!!
Posté le 25-11-2002 à 17:00:40  profilanswer
 

il suffit de faire une requete d'ajout où à la place de '' pour la valeur qui va dans le champ en auto-increment, tu met une valeur (celle qui correspond au trou en l'occurence...). Et un enregistrement sera créé avec l'id que tu auras indiqué et le trou sera comblé et toi tu sera comblé de bonheur etc....

n°253122
Sh@rdar
Ex-PhPéteur
Posté le 25-11-2002 à 17:02:45  profilanswer
 

le pire c'est que ça sert à rien, et en plus la question revient une fois par mois minimum...
 
si t'as des "trous" dans ta table et que ça influe sur tes données, t'as un problème de structure au niveau de ta base..


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°253131
omega2
Posté le 25-11-2002 à 17:10:52  profilanswer
 

Sh@rdar a écrit a écrit :

le pire c'est que ça sert à rien, et en plus la question revient une fois par mois minimum...
 
si t'as des "trous" dans ta table et que ça influe sur tes données, t'as un problème de structure au niveau de ta base..



:jap:

n°253164
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 25-11-2002 à 17:40:14  profilanswer
 

cleanx a écrit a écrit :

Heu en fait t'es obligé de changer la valeur de départ de ton AUTO_INCREMENT avec cette commande : "ALTER TABLE ta_table AUTO_INCREMENT = 50". Si tu exécute cette commande ton increment va repartir de 50. Donc si t'as n lignes dans ta table faut entrer n pour que ton entrée suivante corresponde à n+1, enfin ça je pense que t'aurais trouvé tout seul... :D




 
Han, j'veux pas paraître agressif mais c'est horrible :o Si tu vides ta base, tes ID recommenceront depuis 50...


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°253170
omega2
Posté le 25-11-2002 à 17:44:28  profilanswer
 

Taiche a écrit a écrit :

 
 
Han, j'veux pas paraître agressif mais c'est horrible :o Si tu vides ta base, tes ID recommenceront depuis 50...



enlève ta table et recré là, ton autoincrément sera à zéro. ;)

n°253179
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 25-11-2002 à 17:50:01  profilanswer
 

omega2 a écrit a écrit :

enlève ta table et recré là, ton autoincrément sera à zéro. ;)




 
Donc en gros faut modifier sa table avec des ALTER pour combler les trous pis pour la vider on fait un bon vieux DROP des familles pour enchaîner la combo avec un CREATE [:xp1700] Pour supprimer un fichier, rassure-moi, tu fais pas un formatage ?  [:ddr555]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°253201
omega2
Posté le 25-11-2002 à 17:57:48  profilanswer
 

Taiche a écrit a écrit :

 
 
Donc en gros faut modifier sa table avec des ALTER pour combler les trous pis pour la vider on fait un bon vieux DROP des familles pour enchaîner la combo avec un CREATE [:xp1700] Pour supprimer un fichier, rassure-moi, tu fais pas un formatage ?  [:ddr555]



Ha ben si, pas de faiblesse face à windows. :p
 
HEureusement que non, mais les OS que j'ai installé chez moi ne plantent pas s'il y a sur un disque un secteur inutilisé avant le dernier secteur utilisé.

n°253239
popov
Posté le 25-11-2002 à 18:14:59  profilanswer
 

je fais
 
 
ALTER TABLE inscription_tbl id = 65
 
 
MySQL a répondu:
 
 
You have an error in your SQL syntax near 'id = 65' at line 1
 

n°253243
omega2
Posté le 25-11-2002 à 18:17:02  profilanswer
 

popov a écrit a écrit :

je fais
 
 
ALTER TABLE inscription_tbl id = 65
 
 
MySQL a répondu:
 
 
You have an error in your SQL syntax near 'id = 65' at line 1
 
 



C'est pas :
ALTER TABLE inscription_tbl SET id = 65

n°253254
popov
Posté le 25-11-2002 à 18:21:29  profilanswer
 

ALTER TABLE inscription_tbl SET id = 65
 
 
MySQL a répondu:
 
 
You have an error in your SQL syntax near 'SET id = 65' at line 1
 
 
 
 
non :cry:

n°253261
popov
Posté le 25-11-2002 à 18:23:05  profilanswer
 

c bon ct  
ALTER TABLE inscription_tbl AUTO_INCREMENT = 65

n°253978
cleanx
Posté le 26-11-2002 à 14:23:16  profilanswer
 

Taiche a écrit a écrit :

 
 
Han, j'veux pas paraître agressif mais c'est horrible :o Si tu vides ta base, tes ID recommenceront depuis 50...




 
T'as pas confondu base et table dans ta remarque...? C'est un peu con con comme commentaire (sans être agressif non plus hein :) ), je ne vois pas en quoi c'est horrible :heink: , au moment où tu vides ta table t'as qu'à refaire un ALTER qui fait recommencer ton AUTO_INCREMENT à 1... Enfin faut pas se leurrer, c'est du bricolage tout ça :D .


Message édité par cleanx le 26-11-2002 à 14:25:20
n°254028
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 26-11-2002 à 15:15:33  profilanswer
 

cleanx a écrit a écrit :

 
 
T'as pas confondu base et table dans ta remarque...? C'est un peu con con comme commentaire (sans être agressif non plus hein :) ), je ne vois pas en quoi c'est horrible :heink: , au moment où tu vides ta table t'as qu'à refaire un ALTER qui fait recommencer ton AUTO_INCREMENT à 1... Enfin faut pas se leurrer, c'est du bricolage tout ça :D .




 
Alors dans l'ordre :
* ui, j'ai confondu base et table mais ça revient au même, le code devient pas beau pour que l'ID en base devienne beau... j'avoue que je vois mal l'intérêt
* pourquoi c'est horrible ? Bin foutre des ALTER partout pour une simple raison de "beauté" des ID, j'trouve ça plus que moyen. Tu parles à juste titre de bricolage et ce genre de truc, moins y en a, mieux ton appli se porte :)
 
Disons que le fait que les ID s'enchaînent, a priori t'en as rien à battre. Comme dit Sh@rdar, si le fait qu'il y ait des trous dans les ID pose problème au fonctionnement, c'est soit que la base est mal conçue, soit le code qui est problématique :p


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°254062
cleanx
Posté le 26-11-2002 à 15:33:35  profilanswer
 

Citation :

Disons que le fait que les ID s'enchaînent, a priori t'en as rien à battre. Comme dit Sh@rdar, si le fait qu'il y ait des trous dans les ID pose problème au fonctionnement, c'est soit que la base est mal conçue, soit le code qui est problématique


 
Je n'ai jamais dit que je conseillais cette "technique", c'est juste que Popov a apparemment un problème au niveau de sa table, donc si ça l'emmerde de tout revoir sa structure, et bien c'est une solution, à la M. Bricolage certes, mais une solution quand même. Sinon, je suis entièrement d'accord avec ce que tu as dit.

n°254079
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 26-11-2002 à 15:45:39  profilanswer
 

OK, mais disons qu'en général, quand quelque chose me semble louche, j'préfère demander le pourquoi du comment plutôt que de donner une bidouille :D Surtout là, passke je vois bien le gars revenir dans quelque temps avec un topic pour demander "mais pourquoi mon auto-increment démarre à 65 ?" tout simplement parce qu'il aura vidé sa table [:ddr555]  
 
Enfin vala, quoi :)


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°254122
Master_Jul
Posté le 26-11-2002 à 16:12:17  profilanswer
 

oui j'ai ce "problème" en fait, mon tableau qui affiche les membres, affiche leur "numero", qui est en fait l'id. Donc une suppression d'id revient à avoir un trou par conséquent, ce qu'il me faut c'est la "commande" pour dire "incrémente de 1 à chaque ligne" et pas "associe l'id de chaque entrée". Je pense que mon collège rencontre ce même problème.

n°254126
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 26-11-2002 à 16:18:40  profilanswer
 

++ :lol:
 
En fait, comme je suppose que tu affiches toutes tes données via un while ou un for, il te suffit d'utiliser un bête compteur. Genre :

Code :
  1. $compteur = 1;
  2. while($resultat = mysql_fetch_array)
  3. {
  4.   echo "$compteur - ".$resultat["nom"];
  5.   $compteur++;
  6. }


Message édité par Taiche le 26-11-2002 à 16:19:04

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°254127
Fred999
Rabat-joie
Posté le 26-11-2002 à 16:19:35  profilanswer
 

Master_Jul a écrit a écrit :

oui j'ai ce "problème" en fait, mon tableau qui affiche les membres, affiche leur "numero", qui est en fait l'id. Donc une suppression d'id revient à avoir un trou par conséquent, ce qu'il me faut c'est la "commande" pour dire "incrémente de 1 à chaque ligne" et pas "associe l'id de chaque entrée". Je pense que mon collège rencontre ce même problème.




 
Même motif, même sanction : les champs id auto-incrémentés ne doivent avoir normalement AUCUNE valeur fonctionnelle...
 
Au pire, si tu veux un affichage sans trous, fais-le en PHP avec un compteur ;)
 
Edit : spavré, même sur Prog on se fait griller [:kalisto]


Message édité par Fred999 le 26-11-2002 à 16:20:01
n°254128
Master_Jul
Posté le 26-11-2002 à 16:25:16  profilanswer
 

je le referai plus  :jap:

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  pb de auto incrementation

 

Sujets relatifs
Fermeture auto de la fenêtre de batch sous Win98[Oracle]lancement de script auto dans SQL+
[VC++?MFC] Concernant le "apropos de...." généré autoaccess et génération d'une valeur auto ???
[PHP] Generation auto de mot de pass alphanum 8 car ??[sql] auto_increment avec MS Access
JS --> fermer popup + refresh de la page en dessous (auto-résolu)Comment faire une REDIRECTION auto au bout de x secondes ? [solutioné]
[Visual C++] J'ai perdu l'auto-completion[SQL Server 7/VB6] auto incrémentation dans un objet recordset
Plus de sujets relatifs à : pb de auto incrementation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR