Article Admin : MONTER et DESCENDRE ? [PHP] - PHP - Programmation
Marsh Posté le 03-06-2004 à 17:51:29
rainckill a écrit : Bonjour |
utilise les dates.
Marsh Posté le 03-06-2004 à 20:08:37
rainckill a écrit : Bonjour |
On s'en fout des trous. C'est normal.
Marsh Posté le 04-06-2004 à 09:00:02
d'ailleurs, il n'est pas nécessaire de supprimer un article ... tu peux mettre une date d'expiration.
Comme ça, si tu en as à nouveau besoin, tu peux le ressortir
Marsh Posté le 04-06-2004 à 19:12:29
xla a écrit : Tu les numérotes. |
Si il y avit des trigers en MySQl ......... bonheur pour ce genre de manip
Marsh Posté le 07-06-2004 à 10:39:57
Hermes le Messager a écrit : On s'en fout des trous. C'est normal. |
Non, car imagine :
J'utilise le rangement par id. Et lorsque je 'monte' un article, j'ajoute +1 a l'id l'article. S'il y a des trous dans mes ids (apres suppr d'un article), l'article ne bougera pas de place...
Marsh Posté le 07-06-2004 à 10:42:07
xla a écrit : Tu les numérotes. |
Oui, mais pour que chaque article est un numéro attribué, il faut que j'utilise la fonton auto_increment comme pour les ids, et il risque d'y avoir des trous et donc même problème que plus haut...
N'y a t'il pas moyen d'eviter ces rous, pour parer simplement au problème
En vous remerciant,
Raink
Marsh Posté le 07-06-2004 à 12:54:52
rainckill a écrit : Non, car imagine : |
Tu rajoutes +1 à tous les id qui suivent ton id que tu déplaces.
Marsh Posté le 07-06-2004 à 12:55:38
rainckill a écrit : |
C'est "ta logique" le problème. RIen d'autre. Réfléchis bien, tu verras que les trous ne posent (dans ce cas précis) aucun problème.
Marsh Posté le 07-06-2004 à 20:10:17
Hermes le Messager a écrit : C'est "ta logique" le problème. RIen d'autre. Réfléchis bien, tu verras que les trous ne posent (dans ce cas précis) aucun problème. |
Oui je veux bien croire que c'est ma logique qui bloque Mais si l'on suis cette logique, les trous posent bel et bien un problème. Je vais essayer de donner un exemple :
J'ajoute un article (id= 1) puis deux autres (id=2 et id=3). Je supprime l'article ayant pour id 2.
Bilan :
"Article machin" (id = 1)
"Article bidule" (id = 3)
Je fais un tri par id décroissant. Il affiche donc Bidule, et ensuite Machin. Je veux, via mon admin, "monter" l'article Machin. Je relève l'id de Machin de +1. L'id sera donc 2 (a la place de 1) mais l'ordre ne sera pas changé.
Mais c'est vrai qu cette mthode savère vrament mauvaise, car même sans cette histire de trous, des articles aurait le même id en les relevant (ou abaissant) de 1 pour l'ordre... Donc c'est une mauvaise solution c'est vrai.
Celle que tu proposes (rajouter +1 à tous les id qui suivent l'id déplacé) je ne l'a ompren pas vraiment... Pourrais tu m'aider à la traduire ?
Merci encore
Marsh Posté le 08-06-2004 à 02:58:02
J'ai envie de te dire : te casse pas la tête à mémoriser leur position, contente toi de savoir qui précède qui :
id/nom/suit
1/Bidule/0
2/Truc/1
3/Machin/2
Je veux monter Machin, facile, je sais qui il suit (l'id 2), donc je modifie le champs suit de Machin en lui donnant la valeur du champs suit de Truc et celle du champs suit de truc en lui donnant l'id de machin :
1/Bidule/0
2/Truc/3
3/Machin/1
Et que ce soit descendre, insérer, supprimer un article, c'est toujours le même principe (ou à presque) qui revient
//edit :
J'avais juste oublié de préciser un truc, il faut aussi modifier le champs suit de celui qui suit l'élément déplacé. Là, ça peut varier suivant que tu fais le déplacement d'un élément ou de tout un bloc d'éléments
Marsh Posté le 08-06-2004 à 09:11:25
Ce qui revient à gérer un numéro d'ordre, c'est pareil, tu fais comme tu veux.
Avec un numéro d'ordre, il est plus compliqué de faire une supression ou un insertion dans la liste, mais en revanche, il est plus facile de vérifier l'intégrité de la base.
En tout cas, un truc à ne pas faire, c'est modifier l'id !
L'id, comme sont nom l'indique, c'est ce qui identifie.
Si un lien ou autre fait référence à un article, c'est par son ID, donc le modifier revient à casser toute possibilité de référencer un article.
Marsh Posté le 19-06-2004 à 23:57:52
ui bien sur Mara's, que j'ai parler de "modifier" l'id, c'était apres dupliquer le champs.
Sinon astucieux en effet naceroth, je vais réfléchir dans ce sens
Marsh Posté le 03-06-2004 à 17:45:32
Bonjour
C'est plus une question de reflexion que de PHP, mais j'aimerai isnaurer un systèm me permettant de "monter" les articles (leur affichage) via mon admin, ainsi que de les descendre. Comme on le voit pour les catégorie/forums sur les forums phpBB via l'administration.
J'ai bien pensé à une incrementation d'un idaf pour chaque article. "Monter" = $idaf++ et descendre inversement. Mais si je supprime un article et en reposte un, il y aura des trou dans les ids. Donc fonctionner comme cela ne semble pas être une bonne métode...
Avez vous des idées ?