Załóżmy że mam tabelę:
Kod
ID | NAME | GRUPA | INDEX
A w niej takie wartości:
Kod
1 | test | 1 | 1
2 | test | 1 | 2
3 | test | 2 | 1
4 | test | 2 | 2
5 | test | 1 | 3
6 | test | 1 | 4
7 | test | 1 | 5
8 | test | 3 | 1
9 | test | 1 | 6
2 | test | 1 | 2
3 | test | 2 | 1
4 | test | 2 | 2
5 | test | 1 | 3
6 | test | 1 | 4
7 | test | 1 | 5
8 | test | 3 | 1
9 | test | 1 | 6
Teraz o co chodzi:
ID - wiadomo identyfikator dla wiersza
NAME - jakaś tam nazwa
GRUPA - czyli przynależność do jakieś tam grupy
INDEX - jest to liczba porządkowa według której dane elementy wyświetlają się na stronie, index jest dla każdej grupy osobny zaczynając od 1
Funkcją w PHP będąc w danej grupie przesuwam rekordy (góra/dół), wtedy zamieniam miejscami obok siebie indeksy w danej grupie.
Dodając nowy rekord do danej grupy zwiększam sobie index od ostatniego+1 itd..,
schody zaczynają się gdy usuwam rekord wtedy muszę powyżej tego ID w tej grupie zrobić UPDATE index=index-1
Tak żeby zachować kolejność, i żeby nowy rekord był jako ostatni. Ale gdy chcę usunąć naraz kilka rekordów to już pojawia się problem.
Macie jakiś pomysł jak najłatwiej zmieniać indexy zachowując kolejność, gdy usunę np co drugi rekord?