Mysql
 sql >> Base de données >  >> RDS >> Mysql

comment maintenir le champ d'ordre d'affichage en php

Vous pouvez utiliser des valeurs plus grandes pour l'affichage, comme par exemple :

apple : 1 000 000

orange : 2 000 000

banana : 3 000 000

Maintenant, si je veux ajouter potato en position 2 (n=2) je prends la position n (=> 2 :orange) et (n-1)(=> 1 :pomme) et je les divise par 2 pour obtenir la nouvelle position de la pomme de terre :

(1 000 000 + 2 000 000) / 2

=1 500 000

apple : 1 000 000

**potato : 1 500 000**

orange : 2 000 000

banana : 3 000 000

Cela fonctionnera assez longtemps, et si à un moment donné vous avez l'impression d'avoir épuisé ce schéma, vous pouvez toujours multiplier toutes les valeurs par 1000.

Vous pouvez également continuer à utiliser des valeurs faibles (1, 2, 3, ...) et définir leur type comme DOUBLE , ainsi ils ne se heurteront jamais en les divisant par 2.

MODIF : A propos du placement de la banane en position 1 :

En utilisant la formule (n+(n-1))/2 :

Ici n =1 (nouvelle position).

Nos données sont :

apple : 1 000 000

potato : 1 500 000

orange : 2 000 000

banana : 3 000 000

(1 000000+(0))/2

=500 000

Je donne la commande 500 000 à banana :

**banana : 500 000**

apple : 1 000 000

potato : 1 500 000

orange : 2 000 000

Encore une autre solution :créez un champ de texte qui serait un indexeur et contiendrait tous les identifiants.

"1,2,3,4,5,6,7"

Maintenant, si je veux mettre l'élément id 8 entre 3 et 4, je dois simplement remplacer ",4," par ",8,4,"".

Bien qu'il soit plus compliqué en termes de calcul de trouver un élément à l'index n, j'utiliserais personnellement la première solution.