sql >> Databáze >  >> RDS >> Mysql

jak udržovat pole objednávky zobrazení v php

Pro zobrazení můžete použít větší hodnoty, například :

apple : 1 000 000

orange : 2 000 000

banana : 3 000 000

Nyní, pokud chci přidat potato na pozici 2 (n=2) vezmu pozici n (=> 2 :pomeranč) a (n-1) (=> 1 :jablko) a vydělím je 2, abych dostal novou pozici brambor:

(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

To bude fungovat docela dlouho, a pokud budete mít v určitou chvíli pocit, že jste toto schéma vyčerpali, můžete všechny hodnoty vynásobit 1000.

Můžete také nadále používat nízkou hodnotu (1, 2, 3, ...) a definovat jejich typ jako DOUBLE , takže se při dělení 2 nikdy nesrazí.

UPRAVIT: O umístění banánu na pozici 1 :

Pomocí vzorce (n+(n-1))/2:

Zde n =1 (nová pozice).

Naše údaje jsou:

apple : 1 000 000

potato : 1 500 000

orange : 2 000 000

banana : 3 000 000

(1 000 000+ (0))/2

=500 000

Objednávku dávám 500 000 banánu :

**banana : 500 000**

apple : 1 000 000

potato : 1 500 000

orange : 2 000 000

Ještě další řešení:vytvořte textové pole, které by bylo indexátorem a obsahovalo všechna id.

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

Nyní Pokud chci vložit ID prvku 8 mezi 3 a 4, musím jednoduše nahradit ",4," ",8,4,".

Ačkoli je z hlediska výpočtu složitější najít prvek na indexu n, osobně bych použil první řešení.



  1. Použijte textový výstup z funkce jako nový dotaz

  2. PHP Ukládání relací do databáze. Zdá se, že metoda čtení nefunguje

  3. Volání procedury uvnitř funkce vyvolá chybu MySQL 1422

  4. Jak dostanu NULL do celočíselného sloupce MySQL pomocí PHP/MySQLi?