Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP, MySQL, jQuery] Stronicowanie rekordów + zmiana kolejności
Forum PHP.pl > Forum > Bazy danych
cafepl_com
Witam,

mam spory problem do rozwiązania, nad którym ślęczę już od kilkunastu ładnych godzin...

Otóż w swoim małym CMS mam coś takiego jak lista wszystkich artykułów. Przy dużej ilości artów, są one stronicowanie. Można również zmieniać ich kolejność poprzez jquerową funkcję sortable. Dotychczas wszystko działało OK, do czasu aż nie wykryłem problemu związanego ze zmianą kolejności np. na 3. stronie wyników z artykułami.

Kiedy sortuje się artykuły np. na 1. stronie wyników, JS wysyła do pliku PHP odpowiedzialnego za zmianę kolejności w bazie tablicę z ID artykułów, poukładanych w takiej kolejności, jak użytkownik to uczynił. Przy sortowaniu artykułów na stronie, gdzie jest 15 wyników, w polu "kolejnosc" każdego z artykułu o ID z tablicy aktualizowana jest wartość, i tak aktualizowanych jest 15 rekordów (w polu "kolejnosc" znajdują się zatem liczby od 1 do 15).

Problem jest np. na 2. stronie, gdyż sortowanie odbywa się w ten sam sposób i znowu aktualizowane są rekordy liczbami od 1 do 15, przez co w ostatecznym sortowaniu wszystkiego - kolejność artykułów jest całkowicie pomieszana.

Czy jest jakieś racjonalny sposób, aby to naprawić?
nospor
No to jak jestes na drugiej stronie to zacznik aktualizować w bazie od numeru 16 a nie 1
Jak na 3 to 31 itd..
cafepl_com
Dziękuję za niemalże natychmiastową odpowiedź.

Problem niestety nie został rozwiązany.
Kiedy dodaję nowy artykuł, w polu kolejnosc znajduje sie domyślna wartość 0. W momencie, kiedy dodałem np. 18 artykułów, wszystkie rekordy mają kolejnosc=0.
Kiedy zaś posortuję wyniki na 1. stronie, 15 rekordom z listy zostaną przyporządkowane liczby od 1 do 15, a pozostałe 3 rekordy będą miały kolejnosc=0. Biorąc pod uwagę, że artykuły sortuję przez kolejnosc ASC - 3 rekordy przesuną się na górę...
nospor
To zamiast domyslnej wartosci 0 zrob domyslną wartosc 1000000
phpion
Najlepiej by było gdybyś napisał sobie trigger, który automatycznie aktualizowałby numerowanie artykułów przy dodawaniu/edycji/usuwaniu jednego z nich.
cafepl_com
OK, problem rozwiązałem. Nie ukrywam, że bardzo przydała się podpowiedź nospora.
Bardzo panom dziękuję za odp. Pozdrawiam!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.