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

[php] kolejnosć rekordów - jak zrobić move up/move down
LX
  • Rejestracja: dni
  • Ostatnio: dni
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ć

  • Rejestracja: dni
  • Ostatnio: dni
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

GO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 57
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.

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.