Décrémentation automatique du compteur après suppression d'un élément de la base

cs_midoxe Messages postés 98 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 17 janvier 2012 - 7 oct. 2010 à 01:40
deithso Messages postés 20 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 18 octobre 2010 - 14 oct. 2010 à 14:58
Bonjour tout le monde..

ma base de données se compose des champs suivant:

id,nom,prénom,matricule,dateEntrée

dans ma base de données MySQL j'ai attribuer l'option Auto-Incrément au champs ID.

j'ai développer en parallèle un traitement qui permet de supprimer de la base de données toutes les infos de la ligne dont on a entrée la matricule dans une zone de texte, et puis en cliquant sur un bouton envoyer.

j'ai développer aussi un traitement permet d'afficher le nombre d'entrées existantes dans la bases de données en se basant sur l'ID Maximale avec la requète :

$result = mysql_query("SELECT id FROM stage ORDER BY id DESC LIMIT 0,1");
// cette requête return l'ID Maximale de la base de données

Supposons par exemple que l'ID Maximale dans ma base de données est 100..oké:

> le problème c'est qu'on je supprime un élément du milieu de la base de données, après actualisation le nombre maximal reste tjr 100 et il ne devient pas 99.

comment faire pour résoudre ce problème,et c que le problème et dans le fait d'attribuer au champs ID l'option Auto-Incrément ..??

Merci d'avance pour vos réponses les amis.

20 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
7 oct. 2010 à 06:58
Un champ AUTOINCREMENT ne peux pas diminuer. Lire la doc MySQL à ce sujet.

Changer la valeur des ID parce qu'un élément a été supprimé au milieu, ça n'a pas de sens : les ID ne D, sinon on ne retrouve plus rien.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
7 oct. 2010 à 14:48
oriente toi plutot vers un 'select count(*)'
S.
0
cs_midoxe Messages postés 98 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 17 janvier 2012 1
7 oct. 2010 à 17:27
ouaii cé ce que je suis entrain de faire vous direz koi sur cette requête :

$result = mysql_query("SELECT COUNT * AS nbr_entree FROM table");

while ($row = mysql_fetch_object($result))
{
echo 'le nbr d'entrees est '.$row->nbr_entree;
}

mais ça marche pas pck le messsage s'affiche like this :

le nbr d'entrees est0(pourtant ma table est remplie)

so where is it the problem Friends..??
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
7 oct. 2010 à 17:39
Salut,

La réponse est juste au dessus de ton message (celle de Syndrael) ... suffit juste de copié / collé


SELECT COUNT * != SELECT COUNT(*)


Kohntark -
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
7 oct. 2010 à 19:00
voir réponse pleine de bon sens et de bons conseils de Kohntark
S.
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
7 oct. 2010 à 19:15
C'est moi ou en ce moment, y'a une recrudescence d'utilisateurs de ce genre ? J'ai l'impression que cette semaine, c'est vraiment la fête, youpi... :/


--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
7 oct. 2010 à 19:51
Tu as sans doute raison Neige, encore que ce genre de comportement "je veux du tout cuit sans chercher à comprendre quoi que ce soit" soit constant sur CS.

Moi qui suis autodidacte de A à Z (en PHP et en informatique tout court) je ne comprendrais jamais ce comportement qui est aux antipodes du mien.

... je dois être un vieux con, déjà.


Cordialement,



Kohntark -
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
7 oct. 2010 à 20:32
J'ai l'occasion de cotoyer le milieu universitaire et hélas de nombreux étudiants ont du mal à admettre une chose: il faut bosser, et trouver par soi-même. C'est bête mais c'est de l'apprentissage et beaucoup en oublieraient presque la fierté de découvrir une chose par soi-même. Non, il faut de l'acquis du pré-maché.. c'est dommage, ça fait des journée vides de sens alors que des fois c'est si bon de se surpasser un peu..
C'est notre quart d'heure sociologique..
S.
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
7 oct. 2010 à 21:11
Ce que tu dis ne m'étonne pas Syndrael, et je te rejoins totalement sur la fierté de trouver par soi même, ce qui amène la plupart du temps à bien mieux comprendre et assimiler les choses.

Avant d'être traité à tort d'élitiste (ce qui me fait toujours marrer) par ceux qui tomberaient sur ce post il faut quand même rappeler que la plupart des intervenants réguliers ne "demandent" que très peu de choses : juste un respect du règlement et un minimum d'effort.

Ras le bol de voir des questions ultra basiques qui donnent des millions de résultats dans Google et de ceux qui ne prennent même pas la peine de lire et de répondre aux conseils qui leurs sont donnés

Cordialement,

Kohntark -
0
cs_midoxe Messages postés 98 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 17 janvier 2012 1
8 oct. 2010 à 01:44
oohh je vois que tout le monde fait le savant l'un est autodidacte, l'autre dis qu'il y'a une recrudescence d'utilisateurs en tout cas merci pour votre aide, j'ai trouver la solution.

et juste une remarque : je suis un ingénieur Réseaux Télécom & Sécurité, et dans la formation que j'ai suit je n'avez aucun cours sur le développement web, et alors ni PHP, ni javascript, ni Ajax ni rien du tout.

plutôt la formation que j'ai suis ce concentre plus sur :
la gestion de la sécurité des réseaux et sur les Télécoms (faisceaux hertziens, fibre Optique, Liaisons RTC, RNIS etc..), sur la communication par Ondes et la transmission des des diffèrent types des signaux,communication entre satellites ,Systèmes temps, droit des Télécoms etc..etc...

vous allez me dire ahh il fallait que tu fasse de l'autoformation dans le domaine du développement web pour éviter de nous déranger par tes questions bêtes, mais il faut que sachez les camarades que je travaille de 8h30 du Matin jusqu'au 19h du soir et des fois je travaille même la nuit, et c'est ça la raison qui me pousse a poser mes questions que vous juger bêtes sans la moindre recherche sur google, pck je n'est plus le temps pour chercher c'est pour cela que je compte sur votre aide à 90% dans les problèmes qui m’empêche de s'avancer dans mon application web.

Alors les amis si vous avez lu tout ce que j'ai écris..sois répondez sérieusement a mes questions et dans ce cas je vous remercie bcp pour votre compréhension, sois éviter de laisser les commentaires genre "il faut bosser, et trouver par soi-même", ou "il veux du tout cuit sans chercher à comprendre quoi que ce soit" pck j'en est marre de ce genre de commentaires j, Merci pour votre compréhension
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
8 oct. 2010 à 02:07
Ce qu'il y a, c'est que nous on passe beaucoup de temps sur ce forum, et ce depuis longtemps. T'as tes excuses pour poser tes questions, nous on a les notres pour en avoir marre des gens qui ne cherchent pas, surtout que ces gens-là sont trop nombreux. On s'en fout pas mal, en fait, de ton taf, de tes heures de boulot. Tu sais rien des nôtres, et on peut supposer que t'en as rien à faire.

Là, tes nombreux messages montrent clairement que tu te lances dans du développement sans avoir lu aucune doc : et ça, c'est franchement pénible, parce que t'es loin d'être le premier (on est que jeudi soir, et j'ai pas compté combien y'en a eu des comme ça, qui lisent rien, depuis le début de la semaine, j'ai pas assez de place sur mon disque dur).

Les personnes qui demandent de l'aide n'arrêtent pas de vouloir qu'on se mette à leur place, mais personne ne cherche à se mettre à la nôtre. Et ben nous aussi on en a ras le bol de voir toujours les mêmes questions, les mêmes problèmes, que personne ne lit les messages d'erreur, les docs, y'en a tellement qui veulent du code tout fait au point virgule près (véridique : certains ne sont pas foutus de corriger seuls ce genre de faute de frappe quand pour les aider on tape du code à l'arrache dans un éditeur qui n'est pas fait pour ça).

Et puis on en a marre aussi de voir toujours les mêmes sources qui font toutes la même chose et aussi mal, qu'aucune n'innove vraiment. On en a marre des gens qui disent pas bonjour, qui exigent des réponses "dans les plus brefs délais" (lu sur ce forum), qui ne valident pas les réponses qui solutionnent leurs problèmes, qui ne postent pas la solution qu'ils ont trouvée seul pour les futurs utilisateurs qui tomberont dessus quand ils chercheront.
Mais ça, sous prétexte qu'on est là pour aider sans rien demander en échange à part que les utilisateurs se donnent un peu de peine (on s'en fout de leur vie privée, s'ils veulent se lancer dans un projet et qu'ils n'ont pas le temps pour ça, c'est pas nos affaires), on n'a pas le droit de l'ouvrir, on doit juste subir les assauts en messages privés de gens qui croient qu'on est une hotline et que la réponse leur est dûe parce qu'ils ont pris la peine de s'inscrire. Après on nous reproche de rester dans nos tours d'ivoires, de prendre les gens de haut, etc, alors que plein de neuneus ne font aucun effort pour s'améliorer eux-même et ce, malgré nos remarques constructives (parce que pour ma part, il m'arrive parfois de passer 3h et même plus à rédiger une réponse sur le forum, à tester du code, à rédiger une critique sur une source en proposant des améliorations, des alternatives, en soulevant des questions...).

Mais non, puisque tu bosses 12h par jour, nous on doit te cracher du code tout cuit. C'est tout comme légitimité ? T'as pas trouvé mieux ? Si t'as pas le temps de coder, ben t'as pas le temps, et puis c'est tout !!! Alors soit tu le trouves, soit tu codes pas. C'est comme ça la vie. Ou alors, tu demandes qu'on le fasse pour toi, mais le développement, c'est comme la maçonnerie : faut payer l'ouvrier. Beaucoup de gens ont tendance à l'oublier un peu...

Je suis désolé si je m'emporte un peu, mais y'a vraiment des fois j'ai l'impression qu'on se fout de notre gu****. Tout ce que je dis dans ce message ne t'es pas adressé personnellement, c'est juste qu'en ce moment, des utilisateurs qui demandent du code tout fait, qui ne lisent pas les réponses qu'on leur donne, qui ne prennent pas la peine de lire les messages d'erreurs sont tellement nombreux, que je sature. Des efforts, j'en fais et je suis pas le seul.
Donc voilà, ça tombe dans ton fil suite à ton message, c'est pas de chance. Désolé que ça t'arrive à toi.

Sur ce, bonne soirée.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0
cs_midoxe Messages postés 98 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 17 janvier 2012 1
8 oct. 2010 à 02:35
oké je vous comprend parfaitement, mais à chaqu'un de nous ses excuses.

NB: je parle de moi oké...moi je ne demande pas un code prêt ou complet ou

bien du tout cuit.., quand je pose mes questions je demande juste des petits

trucs cé tout, comme "une petite requête", "désactiver la valeur d'un champs"

etc... certes si j'ai effectuer une recherche de 2 minutes je vais le trouver

sur google, mais je vous est expliquer prk je n'arrive plus a destiner même

2 min pour une recherche.

je vous remercie tous et je respecte tout ce que vous avez dis, et merci encore pour votre aide et pour votre efforts.
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
8 oct. 2010 à 09:40
Ben moi ce que je ne comprends pas, c'est que tu nous racontes ta vie pour justifier notre réaction, alors que bêtement tu n'as qu'à suivre les conseils qu'on te donne (nos première réponse) et tu verras, ton code fonctionnera.
On a mis juste le doigt ou ça pouvait poser problème.
Tu es ingénieur, c'est bien.. moi aussi en Info. Tu bosses 12h ? c'est bien moi aussi. mais sois ouvert aux réponses. On te donne des pistes, pourquoi tu ne les suis pas au lieu de t'enflammer.
1. tu suis nos conseils
2. tu nous fais un retour pour nous dire si ça te convient
3. si ça ne te convient pas, dis nous pourquoi.. (besoin mal exprimé, erreur de code ou autre).. et hop.. retour au cas 1.
C'est pas plus compliqué.
En tout cas je suis navré de le dire mais le technicien applique des règles, l'ingénieur est capable de comprendre des fondamentaux pour aborder un problème dans un domaine qu'il ne connait pas. L'adaptabilité est une qualité primordiale. Suis nos conseils et tu te verras progresser..
S.
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
8 oct. 2010 à 21:33
Bon, et bien après les excellents exposés (*) fort bien argumentés de Neige et Syndrael je n'aurai que peu de chose à dire.

que tout le monde fait le savant

merci pour la blague que j'avais prévu, ça me fait toujours marrer (cf * pour connaitre une large partie de ma pensée)

et juste une remarque : je suis un ingénieur Réseaux Télécom & Sécurité, et dans la formation que j'ai suit je n'avez aucun cours sur le développement web, et alors ni PHP, ni javascript, ni Ajax ni rien du tout.

Mouais, et en quoi cela t'empêche de lire et d'appliquer les réponses qui te sont faites ?
Syndrael te donne une ligne de code.
En tant qu'"ingénieur Réseaux Télécom & Sécurité" (with color !!), et sous condition d'avoir pris un minimum en considération la réponse (?????) tu devrais être capable de voir que la syntaxe n'est pas la même, non ?

mais il faut que sachez les camarades que je travaille de 8h30 du Matin jusqu'au 19h du soir et des fois je travaille même la nuit, et c'est ça la raison qui me pousse a poser mes questions que vous juger bêtes sans la moindre recherche sur google, pck je n'est plus le temps pour chercher c'est pour cela que je compte sur votre aide à 90% dans les problèmes qui m’empêche de s'avancer dans mon application web.

Quand je lis ça me fais bondir et je prends sur moi pour rester correct.
Tu crois quoi ? Que les intervenants sont là pour compenser tes carences temporelles et techniques ?
Combien penses tu que nous avons gagné financièrement avec nos milliers de messages (et centaines d'heures) respectifs ?
Tu penses franchement que tu vas nous attendrir en nous disant que tu travailles beaucoup ?
Perso je m'en bats grave, moi qui suis simple ouvrier (in red like you, sisi), et qui passe en moyenne 5 heures par jour à programmer, en plus des 8/10 heures de mon boulot qui n'a strictement rien à voir avec PHP, cela en n'ayant JAMAIS eu la moindre formation en informatique.
Dois je pour autant attendre tout des autres ? Non, et heureusement, parce que ...

Heu ... je fais quoi moi à part parler une nouvelle fois dans le vide. Il y aurait encore à dire mais vu ton historique en ces lieux .... basta.

(je sais, je suis acide ce soir , mais j'en ai marre)

Bonne fin de soirée,

Kohntark -
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
9 oct. 2010 à 08:24
et moi je dis: Vive le monde ouvrier !!
..pour remonter le moral de Kohntark.. LOL !!
Des fois j'aimerais juste être avec les personnes qui répondent de la façon pour leur crier aux oreilles: Mais tu la vois la réponse ??
S.
0
deithso Messages postés 20 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 18 octobre 2010
13 oct. 2010 à 22:56
aie aie ayaaa les gars, vos êtes dûr avec le mec lol, mais vous avez raisons, je suis nouveau dans le coin ( étant porteur d'aide pour les gens ) mais je suis ancien ( étant chercheur de réponses ) mais, pour mes problèmes, je pause jamais de questions - rarement - mon ami google est la, je cherche par ci et par là, je lis les documentations, et je peux passer 2 semaines ou plus dans la recherche, et je demande jamais du code fini, et quand je demande de l'aide et qu'on me passe un fil, je me lance,

@midoxe, ne compte pas sur notre aide à 90%, t'es déjà dans le domaine, alors t'es capable de lire et chercher au lieux d'attendre qu'on te passe un bout de code,

en plus je comprends pas comment les gens se lancent dans des choses sans avoir consacré un peu de temps pour savoir comment ca se passe ou de de quoi s'agit-il ?

ben bon chance à toi,
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
14 oct. 2010 à 08:04
Ben dans notre cas la réponse est simple: on l'a donnée la réponse !!
On a donné des pistes, et vu le cursus de notre ami, on peut prétendre qu'il sache lire et piocher dans des docs, des standards et tout le toutim.. sinon bonjour l'état de ses projets.. LOL !!
S.
0
deithso Messages postés 20 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 18 octobre 2010
14 oct. 2010 à 14:48
bonjour,

ben je vais lui porter une réponse, je sais que c'est pas trop professionnel, mais je ne sais pas,

ben ya une possibilité pour décrémenter le compteur, mais dans ce cas, ton id ne doit pas être, auto-increment, tu change le type en int, et à chaque fois que tu fais une insertion, tu cherche la dernière valeur de tes id, puis tu incrémente et tu insères ton nouveau id, et ainsi de suite, mais pour la suppression, y un sacré travail à faire, si tu supprime le dernier id, y a pas de problème, mais supposons que tu supprime un enregistrement qui est en milieux? là tu dois créer un trigger, qui va faire l'update de tout les autres id, ainsi la valeur de tout les id dans les autres tables,

beh voila une idée qui me passe pas la tête, à toi de faire le travail, et on t'aide ^^
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
14 oct. 2010 à 14:53
Non mais c'est vraiment dégueulasse de faire comme ça. Tu n'as aucune garantie de conservation de l'intégrité des données et puis UN ID NE SE MODIFIE PAS !! et puis c'est tout. Si l'identifiant change, alors il identifie un autre élément. Autant dire que s'il identifie tout et n'importe quoi, il n'identifie plus rien.

Pour la dernière fois : ON NE MODIFIE PAS UN ID SOUS PRETEXTE QU'ON A UN CAPRICE DE DEVELOPPEUR !! Les caprices de développeurs de ce genre sont des inepties au regard du travail d'un DBA. Respectez donc les compétences et les connaissances d'un DBA. Et si vous ignorez quelles elles sont, alors SUIVEZ UNE FORMATION DE DBA (mais ça coûte cher et ça dure plus d'une journée !) ou bien lisez des tutoriaux achetés dans des librairies (qu'on appelle aussi livres techniques).

Ah mais c'est pas vrai à la fin !

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0
deithso Messages postés 20 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 18 octobre 2010
14 oct. 2010 à 14:58
oui t'as raison neigedhiver +1 ( c'était juste une réponse pour le satisfaire et lol ) mais à vrai dire, quand on travail avec dba, soit on fait les choses correctement soit on laisse tomber, y a ce qu'on appelle bricoler
0
Rejoignez-nous