cafepl_com
20.01.2011, 20:24:15
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
20.01.2011, 20:26:50
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
20.01.2011, 21:26:10
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
21.01.2011, 07:20:17
To zamiast domyslnej wartosci 0 zrob domyslną wartosc 1000000
phpion
21.01.2011, 08:08:03
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
21.01.2011, 10:48:00
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.