Supprimer dans la base de données

Résolu/Fermé
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 - Modifié par glodybiss le 2/12/2011 à 08:55
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 - 2 déc. 2011 à 10:38
Bonjour,

Cette question est peut être stupide mais ça m'ennui un peu trop, comment ferai-je pour une supprimer entrer dans la base des données sans supprimer le ID ?

je m'explique; quand je supprime par exemple le n°2 à la prochaine entrée au lieu que ça recommence à 2 il saute directement à 3 et je n'ai plus de numéro 2 dans la table.



3 réponses

bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
2 déc. 2011 à 09:11
Salut!
Avec MYSQL c'est ainsi et sincèrement,je ne te le cache pas,je ne sais pas comment régler ça.Mais ça ne me gène pas, je ne vois pas pourquoi tu veux que les ID se succèdent?
0
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
2 déc. 2011 à 09:54
Biss moi ça me gène un parce que je dois afficher toutes les entrés par leurs numéro d'ordre
Par exemple :
1. Banane
2. Orange
3. Ananas
5. Mandarines

Tu vois un peu en quoi ça me gêne ?! il n'y a pas 4 dans ma liste.
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
2 déc. 2011 à 10:01
OK je comprends mieux.Alors essaie d'exploiter la solution de Mihawk.
0
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
2 déc. 2011 à 10:12
Oui, j'essaie de voir un peu avec sa solution. Merci !
0
Mihawk Messages postés 4315 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 846
Modifié par Mihawk le 2/12/2011 à 09:15
Hello Glody ;-)

C'est parce que tu utilises surement un champ "auto-increment" donc qui s'incrémente de 1 à chaque INSERT dans ta base. La valeur est mémorisée quelque part...

En fait ton problème est large : encore si jamais tu te contentes de supprimer la dernière ligne de ta base, tu peux utiliser une ligne comme celle-ci afin de réduire l'auto-increment :

alter table <nom de ta table> auto_increment=<ta nouvelle valeur>;

Mais que feras-tu si tu supprimes une ligne en plein milieu ? Tu vas décrémenter mais à la prochaine insertion tu insèreras un A-I déjà présent... À moins de faire une boucle afin de décrémenter toutes les lignes dont l'ID est supérieur à celui que tu viens de supprimer...?

Tu vois le soucis ? :)

Mihawk
"Tant qu'on ne fait pas, on ne sait pas."
0
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
2 déc. 2011 à 10:04
Merci Mihawk ça alors ça devient encore très ennuyant, donc dans le cas d'une base des données où il y a des membres enregistrés c'est compliqué de supprimer leurs comptes! tu as raison j'ai mis le ID auto_increment, dans le cas où je dois écrire :
alter table <nom de ta table> auto_increment=<ta nouvelle valeur>;
il faudra alors que je puisse écrire la nouvelle valeur manuellement ?
0
Mihawk Messages postés 4315 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 846
2 déc. 2011 à 10:06
Ne te sert pas de ça ; regarde plutôt mon post de dessous.
L'A-I est très utile mieux vaut ne pas le toucher.
0
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
2 déc. 2011 à 10:13
D'accord je te dirai quoi. Merci !
0
Mihawk Messages postés 4315 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 846
2 déc. 2011 à 10:02
Glodybiss,

Rien ne t'empêche de faire une boucle en while sur toutes les entrées récupérées dans ta base, et de créer ton propre compteur au sein de ce même while afin d'avoir des numéros qui se suivent...

Copie/colle ici le code de ta boucle d'affichage, je te montrerai !
0
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
2 déc. 2011 à 10:13
Ok!
0
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
Modifié par glodybiss le 2/12/2011 à 10:17
Voici la boucle qui affiche toutes les entrées de ma table

	while ($row = mysql_fetch_array($result)) 
{
	
	echo '<tr>';
	echo '<td>'.$row['id'].'</td>';
	echo '<td><a href="#">'.$row['nom_enreprise'].'</a></td>';
	echo '<td><a href="#">'.$row['nom_du_contact'].'</a></td>';
	echo '<td>'.$row['adresse'].'</td>';
	echo '<td>'.$row['email'].'</td>';
	echo '<td>'.$row['telephone1'].'</td>';
	echo '<td>'.$row['telephone2'].'</td>';
	echo '<td>'.$row['siteweb'].'</td>';
	echo '</tr>';
} 
0
Mihawk Messages postés 4315 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 846
Modifié par Mihawk le 2/12/2011 à 10:24
À remplacer par :

(int) $iCompteur = 1;  
while ($row = mysql_fetch_array($result))   
{  
   
 echo '<tr>';  
 echo '<td>'.$iCompteur.'</td>';  
 echo '<td><a href="#">'.$row['nom_enreprise'].'</a></td>';  
 echo '<td><a href="#">'.$row['nom_du_contact'].'</a></td>';  
 echo '<td>'.$row['adresse'].'</td>';  
 echo '<td>'.$row['email'].'</td>';  
 echo '<td>'.$row['telephone1'].'</td>';  
 echo '<td>'.$row['telephone2'].'</td>';  
 echo '<td>'.$row['siteweb'].'</td>';  
 echo '</tr>';  
 $iCompteur++;  
}   


Tiens-moi au jus :)
Et si tu as besoin du compteur quelque part (pour un bouton, etc...) rien ne t'empêche de le mettre dans un bloc caché.
0
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
2 déc. 2011 à 10:28
T'es fort gars ! J'allais t'embrasser si tu étais à côté de moi :) mdr ! Merci beaucoup c'est simplement très gentil de ta part.
0
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
2 déc. 2011 à 10:29
Mettre dans bloque coché comment ? je n'ai pas pas compris... Tu veux parler d'une case à coché ?
0