[php] kolejnosć rekordów - jak zrobić move up/move down

0

Zastanawiam się jak prosto zrobić coś takiego:

mamy np produkty (rekordy) w bazie danych

product A
product B
product C

i teraz chcę aby aby można było zminić kolejność ich wyświetlania czyli np przesunąć B o jeden do góry lub do dołu

product B
product A
product C

pasowało by dodać pole do tabeli z indexem mówiącym o kolejności, tylko później jak tym zarządzać wszystkie rekordy trzeba by było zmienić - przeindexować

0

W bazie nie zamienia sie calych wierszy. Lepiej zrobic indexowanie i podmienic tylko numery. Wtedy pobierasz dane poprzez sortowanie indexow i jest ok:

SELECT * FROM tab ORDER BY id

0

Najlepiej właśnie dodać dodatkową kolumnę po której będzie się sortowało.
Wstawienie rekordu w środek wcale nie będzie trudne.

UPDATE tabela SET MyID=$MyID+1 WHERE MyID>=$MyID   // przesuwamy wszystko w gore
// i w wolne miejsce wstawiamy co nam jest potrzebne

1 użytkowników online, w tym zalogowanych: 0, gości: 1