Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Prosze o pomysl w rozwiazaniu problemu z kolejnoscia
Forum PHP.pl > Forum > Przedszkole
free
Mam prosta galeria produktów i chcę by mozna było je sortowac przy edycji w gore lub w dol.

Zmienialbym to uaktualniajac baze:

gdzie id to wartosc w bazie auto incerement
  1. "UPDATE galeria SET id='$id+1' WHERE id='$id'";
  2. ...
  3. "UPDATE galeria SET id='$id' WHERE id='$id+1'";


  1. "UPDATE galeria SET id='$id-1' WHERE id='$id'";
  2. ...
  3. "UPDATE galeria SET id='$id' WHERE id='$id-1'";

I w zasadzie juz bym to wdrazal tylko doszedlem do wniosku, że skrypt bedzie zle interpretowal, gdy podczas uzytkowania pola beda usuwany i wowoczas id jako wartosc auto increment nie bedzie prawidlowe.

Jak to inaczej rozwiazac ?
ActivePlayer
dodaj pole priority wg którego będziesz sortował. Do id mozesz miec jakies relacje (powiązanai) z innych tabel, wtedy wszystko Ci sie posypie przy zmianach id.
free
Nie przy id nie mam powiazan to prosty skrypt.
Tez myslalem o dodatkowym polu prioryti. Ale jak to rozwiazac by kolejny pola byly 1,2,3,4,5,6,7...
a gdy skasuje np pole 3 to otrzymuje1,2,4,5,6,7 i juz mi sie skrypt sypie przy zmianie kolejsniosci wyswietlania rekordu 2 na 3
ActivePlayer
mozesz zrobic priority jako float.
wtedy gdy chcesz wstawic jakis element między jakies dwa, sumujesz ich priority i dzielisz na dwa.
free
Nie wiem czy to przez pozna pore ale nei kumam. Mozesz jakis przykladzik ?
ActivePlayer
masz 3 elementy
id | priority
1 | 1
2 | 2
3 | 3
zeby przesunąć element 3 między 1 i 2
dodajesz ich priority (1+2=3)
dzielisz na 2 (=1,5).
elementowi id=3 nadajesz priority 1.5
free
Zauwaz tylko ze ja w swoim skrypcie pobieram id / czy jak w twoim przykladzie / tylko edytowanego /w gore lub w dol/ elementu. Jak mam pobrac id kilku do przodu lub do tylu id ?

Chyba zastosuje oporniejsza ale pewna metode sortowania poprzez date. Dzieki temu przy edycji elementu aktualizuje date i wedlug niej przesuwam - ale ta metoda ma te wade że chcac przesunac np 5 element na pozycje 4 musze edytowac 5 element, potem 4 potem 3 , 2 i pierwszy.
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.