|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() Inscription : août 2005 Messages : 221 ![]() |
Bonsoir,
Je suis en train de faire mes pages d'administration avec possibilité de delete et update de champs et lignes dans mes tables, le delete, c'est pas compliqué L'update quand à lui me pose un petit problème, je ne sais pas comment récupérer l'emplacement de la ligne à modifier, mes tables contiennent toutes un id, je pourrais donc me servir ce cette id pour savoir la position de la ligne, mais si je désire également updater ce champ id, je n'ai plus rien sur quoi m'appuyer dans ma table, comment faire pour récupérer le numéro de la ligne dans ma table ? Une seconde question, par exemple sur 10 lignes dans ma table et un id en auto-increment, je supprime la ligne 7, je me retrouve donc avec un trou, donc ce que je souhaite, c'est pouvoir réinitialiser la colonne des id, et donc au lieu d'avoir 1,2,3,4,5,6,8,9,10 après delete d'une ligne, j'obtienne donc après initialisation 1,2,3,4,5,6,7,8,9. Merci |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Inscription : avril 2003 Messages : 3 286 ![]() |
C'est une très mauvaise idée de modifier un champ qui te sert de clé. Trouve un petit cours sur les bases de données avant d'aller plus loin...
__________________
Tous mes tutoriels Pas de questions techniques par MP ni par e-mail, merci ! Prolog rules! |
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Inscription : août 2005 Messages : 221 ![]() |
Bah pourquoi ce serait une mauvaise idée ?
Admettons un livre d'or ou un forum, un crétin passe par là et y laisse un message insultant, je dois bien effacer ce message, donc l'id qui va avec, je vois pas du tout où est le problème |
|
|
00
|
|
|
#4 | |
|
Expert Confirmé
![]() ![]() Inscription : avril 2003 Messages : 3 286 ![]() |
Citation:
Par ailleurs, dans ton exemple, l'id n'a pas véritablement de signification, donc il importe peu d'avoir des "trous" dans la séquence.
__________________
Tous mes tutoriels Pas de questions techniques par MP ni par e-mail, merci ! Prolog rules! |
|
|
|
00
|
|
|
#5 |
|
Membre émérite
![]() |
salut
Je ne pense pas que cela pose de problème de supprimer l'enregistrement. Par contre si tu fais un update, tu n'as pas besoin de modifier l'id. Par exemple, si quelqu'un met son nom, son prenom et son email dans une base et que son enregistrement est identifié par un id. Tu prévoir un update si il veut changer son email. Tu changes le champs email mais pas le champ id. Julien |
|
|
00
|
|
|
#6 |
|
Membre expérimenté
![]() Inscription : avril 2005 Messages : 425 ![]() |
Bonsoir Spirou,
Je rejoins totalement l'idée d'Eusebius, il est inutile et dangereux de manipuler les clés de tes enregistrements surtout si celles-ci te servent à faire des liens avec d'autres tables. Pourquoi veux-tu qu'il n'y ait pas de trous dans ta numérotation ? Pour compter le nombre d'enregistrements de ta table (mysql_num_rows() ou équivalent est ton amie)? Pour savoir quel est le ènième enregistrement (while et un compteur sont tes amis)? ... Franchement, je ne vois pas de raison pour 'boucher' les trous !
__________________
Lu kinze d' awousse, la Vierje arandje û dusbrôle lu timp. Et ce coup ci, elle ne nous a pas ratés |
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() Inscription : août 2005 Messages : 221 ![]() |
Bon, ben d'accord, je vais suivre vos conseils
Par contre, pour la réinitialisation, cela m'intéresserait si cela est possible, car j'ai (comme sur la plupart des sites) des pages affichant des news du site page par page, et j'ai remarqué que si je supprimait une ligne dans la table autre que la dernière, mon affichage déconnait (normal, c'est moi qui l'ai fait Merci à tous |
|
|
00
|
|
|
#8 | |||||
|
Membre Expert
![]() Inscription : avril 2004 Messages : 1 132 ![]() |
Citation:
En effet, le stockage des informations n'est pas forcément "ordonné". Certains SGBDR, par exemple, ne suppriment pas physiquement les données sur une instruction DELETE, mais marquent la ligne comme ne comportant pas de données. On peut ainsi se retrouver avec ça, par exemple : Code :
Code :
|
|||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com