{MySQL} Pb insertion nouvo utilisateur dans sql

Fermé
Victoria - 28 janv. 2010 à 01:05
 fiu - 28 janv. 2010 à 18:57
Bonjour,

J'ai réussi à insérer des utilisateurs dans ma base de données par une requête INSERT INTO mais mon pb c'est que lorsqu'il est enregistré dans ma base de données les idutilisateurs ne se suivent pas du tout, cela passe de 1 à 12 car j'ai fait beaucoup de tests et supprimer au fur et à mesure mais comment passer de 1 à 2, de 2 à 3, de 3 à 4 et non de 4 à 12, de 12 à 15 ...etc même si entre temps je supprime les derniers utilisateurs enregistrés et où placer dans mon code php avant ou après le INSERT INTO et quelle est la syntaxe exacte???

Merci d'avance pour vos solutions.
A voir également:

3 réponses

salut,

est-ce que c'est vraiment grave si les idutilisateurs ne se suivent pas ? risques-tu qqe chose si un utilisateur se rend compte que l'id 253 (ou le 156960) n'existe pas ?
normalement, un id est interne à la base, rien de plus.

le fait de "trous" dans la séquence n'est pas important... à moins que tu aies décidé de stocker ces id sur 2 caractères, ce dont je doute.
0
En fait, je voulais juste connaître une méthode pr que ça fasse plus "propre"... car si je veux savoir le nombre d'utilisateurs enregistrés dans ma base de données c'est difficile de les compter à la main s'il y en a beaucoup et qu'il y a des trous partout. Ce serait plus simple si les numéros des idutilisateurs se suivent....

Merci, j'aimerais quand même savoir s'il existe une solution...
0
bah... un select count(1) from utilisateurs; devrait suffire
0
Merci pour ta réponse mais où mettre exactement dans mon code ta ligne ???
0
Hello,

le select count(1) from utilisateurs n'était pas destiné à être glissé dans une autre requête (genre insert).
ce select n'est qu'une réponse à si je veux savoir le nombre d'utilisateurs enregistrés dans ma base de données

et maintenant que tu as des trous dans tes idutilisateurs, tu ne peux plus utiliser le select count(1) dans un insert
ex: tu as 3 utilisateurs (1, 4 et 18... oui, il y a eu bcp de tests) et tu cherche à faire un
insert into utilisateurs(idutilisateur, nomutilisateur) select count(1)+1, 'le nom saisi' from utilisateurs;

le moteur va calculer count(1) => 3, lui rajouter 1 => 4 et insérer 4, 'le nom saisi'... sauf que l'id 4 est déjà utilisé :-( c'est donc une méthode à proscrire. c'est d'ailleurs pour éviter ça et d'autres légers soucis qu'ont été inventés autoincréments et séquences

en conclusion :
- que les id ne se suivent pas n'est pas gênant
- l'éventuel comptage se fait avec un select count(1)
0