Renumeroter dans la BBD [resolu] - ASP - Programmation
Marsh Posté le 17-06-2004 à 14:38:57
Quelle est l'utilité de vouloir décrémenter tes ID ? Surtout que c'est un peu dangeureux si c'est une clé primaire.
Marsh Posté le 17-06-2004 à 14:42:08
pour que ca reste dans le bon ordre et pour d'autre chose aussi, enfin en clair j'en ai besoin
Marsh Posté le 17-06-2004 à 14:42:28
et d'ailleurs impossible s'il est de type clé primaire (enfin, sans magouiller)
enfin dis-toi qu'on ne devrait jamais savoir ce que contient une clé primaire!
Marsh Posté le 17-06-2004 à 14:44:23
fr0ggy a écrit : pour que ca reste dans le bon ordre et pour d'autre chose aussi, enfin en clair j'en ai besoin |
Bin de toute façon, ça reste toujours dans le bon ordre d'une certainne façon. Exemple, tu as 3 lignes avec l'ID 1,2 et3. Tu supprimes 2, il te reste 1 et 3. Tu en insère une nouvelle, tu auras 1,3 et 4. Donc c'est toujours dans l'ordre. Je comprend pas le problème donc.
Marsh Posté le 17-06-2004 à 14:46:29
bah le probleme et que si j'ai a l'origine 1,2,3 et que je supprime le 2 j'aurais 1,3 et moi c pas ce que je veux, moi je veux que ca me fasse 1,2!
Marsh Posté le 17-06-2004 à 14:49:47
urd-sama a écrit : dis-toi qu'on ne devrait jamais savoir ce que contient une clé primaire! |
Pas tjrs vrai ça!
Marsh Posté le 17-06-2004 à 14:50:57
skeye a écrit : Pas tjrs vrai ça! |
c'est pour ca que j'ai mis un conditionnel
par contre je veux bien un contre-exemple pour ma gouverne
Marsh Posté le 17-06-2004 à 14:51:00
ah ok bon alors voila je vais tout expliquer ce sera plus simple.
Ma base de donnée contien 3 champs:
ID | titre | news
je suis en train de faire un outil d'admin pour gerer ces news. Donc quand je supprime la news n°2 (ID=2) je voudrais que la news n°3(ID=3) prenne l'ID 2. Car apres quand lorsque je vais ajouter une news avec l'outil d'admin je voudrais que la nouvelle news prenne l'ID 3.
Voila je pense avoir ete clair mais si qq un a une autre solution je suis preneur.
Marsh Posté le 17-06-2004 à 14:51:25
fr0ggy a écrit : ah ok bon alors voila je vais tout expliquer ce sera plus simple. |
pourquoi?
Marsh Posté le 17-06-2004 à 14:51:47
urd-sama a écrit : c'est pour ca que j'ai mis un conditionnel |
bah une table d'individus avec le numéro de sécu comme clé primaire...
Marsh Posté le 17-06-2004 à 14:52:20
skeye a écrit : bah une table d'individus avec le numéro de sécu comme clé primaire... |
perso je trouve que c'est caca de faire ca, mais ca reste de l'appréciation personnelle
Marsh Posté le 17-06-2004 à 14:53:02
urd-sama a écrit : perso je trouve que c'est caca de faire ca, mais ca reste de l'appréciation personnelle |
Je vois pas le pb...la clé sert d'identifiant unique, si tu en as déjà un je vois pas l'intérêt d'en générer un artificiel qui ne signifie rien.
Marsh Posté le 17-06-2004 à 14:53:06
Comme urd-sama donc, ta base est mal défini au départ. Tu devrais dans ce cas définir un 4° champ qui serait l'ordre de tes news...
Marsh Posté le 17-06-2004 à 14:54:17
urd-sama : je veux qu'elle prenne l'id 3.
pour qu'apres elles s'affiche dans l'ordre
Marsh Posté le 17-06-2004 à 14:55:23
fr0ggy a écrit : urd-sama : je veux qu'elle prenne l'id 3. |
mauvaise conception, on te dit. Rajoute un champ date ou ordre, 'fin une connerie de ce style/
Marsh Posté le 17-06-2004 à 14:55:24
skeye a écrit : Je vois pas le pb...la clé sert d'identifiant unique, si tu en as déjà un je vois pas l'intérêt d'en générer un artificiel qui ne signifie rien. |
un exemple débile, tu entre un gars et t'as pas son no... ben mairde
mais bon, comme je te disais, c'est après une question d'interprétation perso. pour moi la clé primaire ne doit pas être une information à proprement parler.
Marsh Posté le 17-06-2004 à 14:56:33
ok vous avez raison ca va etre plus simple avec un autre champ
Marsh Posté le 17-06-2004 à 15:00:34
j'ai fait un system de gestion de news justement l'autre jour frOggy, en gros le "concept" :
pour chaque news un fichier est créé (dans un rep "news/" par exemple) sous le nom : aammjjhhmmss (année/mois/jour/...)
avec dedans par exemple :
ligne 1 : auteur
ligne 2 : titre
ligne 3 : date
ligne 3 : le contenu de la new
...
apres t'as juste à les afficher par ordre de nom de fichier, ca simplifie vachement la gestion ! bon jte dis ça comme ca hein...
Marsh Posté le 17-06-2004 à 15:06:29
super idée ca...merci c cool, comment on fait pour recuprer la date en asp?
Marsh Posté le 17-06-2004 à 15:06:48
fr0ggy a écrit : super idée ca...merci c cool, comment on fait pour recuprer la date en asp? |
select sysdate from dual
Marsh Posté le 17-06-2004 à 15:08:14
fr0ggy a écrit : Bon dernier petit soucis. |
De manière automatique, tu ne peux pas. Il faudrait qu'à chaque fois que tu lances un DELETE, tu fasses ensuite un update sur toute ta table pour tous les enregistrements plus grands que l'ID que tu viens d'effacer.
Voilà, t'as plus qu'à traduire ça en SQL
Marsh Posté le 17-06-2004 à 15:08:30
heu skeye est ce que tu peut preciser un petit peu stp, quel est le code?
Marsh Posté le 17-06-2004 à 15:09:22
fr0ggy a écrit : urd-sama : je veux qu'elle prenne l'id 3. |
pour s'afficher dans l'ordre, tu fais un ORDER BY, sinon t'as pas de garantie que ça s'affichera dans l'ordre (parce que ça ne s'affiche pas forcément dans l'ordre d'insertion dans ta table).
Marsh Posté le 17-06-2004 à 15:09:37
fr0ggy a écrit : heu skeye est ce que tu peut preciser un petit peu stp, quel est le code? |
Je peux pas faire plus précis, je te file une requête SQL qui retourne la date, tu veux quoi de plus?
Marsh Posté le 17-06-2004 à 15:13:51
skeye a écrit : bah une table d'individus avec le numéro de sécu comme clé primaire... |
la cnil, tu connais ?
ici on est obligé d'utiliser des identifiants a la con
Marsh Posté le 17-06-2004 à 15:14:24
urd-sama a écrit : un exemple débile, tu entre un gars et t'as pas son no... ben mairde |
+1
Marsh Posté le 17-06-2004 à 15:14:25
lorill a écrit : la cnil, tu connais ? |
On en apprend tous les jours...
Cf blabla, c'était qu'un exemple...
Marsh Posté le 17-06-2004 à 15:20:40
heu pour la date tu peux prendre celle du server ASP direct
<% = date %>
moi perso pour créer le nom du fichier en forcant aammjj... (parce que sinon il mettait 6 à la place de 06 par exemple) :
Code :
|
mais bon va falloir que tu cherche aussi un peu hein...
Marsh Posté le 17-06-2004 à 15:28:07
en fait je crois que j'ai peut etre une solution plus simple mais je ne sais pas si ca existe en asp.
Je crois qu'en C y'a une fonction de temps qui permet d'avoir un numero qui augmente depuis genre 1970, est ce qu'il existe de mm en asp? ou comment puis-je recuperer ce nombre
Marsh Posté le 17-06-2004 à 15:29:55
fr0ggy a écrit : en fait je crois que j'ai peut etre une solution plus simple |
Non.
On t'a déjà donné 2 solutions simples.
Marsh Posté le 17-06-2004 à 15:31:26
skeye en fait mon probleme est de faire le code avec la requette que tu m'as passé pour afficher cette requette.
Marsh Posté le 17-06-2004 à 15:32:51
fr0ggy a écrit : skeye en fait mon probleme est de faire le code avec la requette que tu m'as passé pour afficher cette requette. |
et? Qu'est-ce qui te pose pb???
Marsh Posté le 17-06-2004 à 15:35:00
Ah ouais. Bon ben là tu vas commencer par apprendre les bases en asp, on va pas te pondre tout ton code tout fait hein...
Marsh Posté le 17-06-2004 à 15:36:39
=) ok deja merci pour m'avoir ouvert les yeux sur comment faire mon truc
Marsh Posté le 17-06-2004 à 15:37:12
ouais faudrait que tu trouves un tuto ou un bouquin pour les bases
Marsh Posté le 17-06-2004 à 14:29:18
Bon dernier petit soucis.
J'ai une base de donnée avec un champ ID.Disons par exemple que dans ce champ ID j'ai les valeurs 1,2 et 3.
Lorsque je supprime la valeur 2 je voudrais que le 3 devienne 2, comment faire?
Merci
Message édité par fr0ggy le 17-06-2004 à 14:57:24