głowię się nad skonstruowaniem listy, której można zmieniać pozycje. Np.:
Jest lista:
- Telefon
- Kawa
- Długopis
Po kliknięciu w przycisk "do góry" przy pozycji Kawa:
- Kawa
- Telefon
- Długopis
Niby proste ale albo już mi sie przegrzały zwoje mózgowe, albo wcale nie takie proste

Skrypt ma działać na bazie mysql, więc wymyśliłem tak:
Do każdej pozycji w bazie wartość x+1000 (startując od 1000). Czyli:
- Telefon (1000)
- Kawa (2000)
- Długopis (3000)
W momencie kliknięcia 'do góry' przy Kawa:
1. Wyciągnięcie pierwszej pozycji z wartością mniejszą niż wartość pozycji Kawa
2. Odjęcie od uzyskanej wartości 1
3. zapis wyniku jako wartości pozycji Kawa
Analogicznie przy opcji 'w dół' by się dodawało itd.
Problem polega na tym, że prędzej czy później może dojść do sytuacji gdzie wartości spotkają się jedna przy drugiej:
- Telefon (1000)
- Kawa (1001)
- Długopis (1002)
...a wtedy lipa. Można by sprawdzać czy wyjściowa wartość już istnieje ale wtedy trzeba by zmieniać już dwie wartości albo i więcej... Można by też zamiast po 1000, dać po 1000000 ale koniec końców kiedyś tam znów zaistnieje problem.
Ponieważ już dzisiaj nie wymyślę nic ciekawszego, chciałbym zapytać czy znacie jakieś prostsze rozwiązania lub jak obejść powyższy problem

Pozdrawiam