Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/mysql] Zmiana pozycji rekordu, czyli jak ustawiac rekord o jedne w góre lub o jedne w dól
Luke_Star
post
Post #1





Grupa: Zarejestrowani
Postów: 129
Pomógł: 2
Dołączył: 17.01.2005

Ostrzeżenie: (0%)
-----


Jak w temacie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Rozchodzi sie o najbardziej optymalny mało kombinownay sposób na zmiane pozycji np. Kategorii w bazie danych. Chodzi oczywiście o zmiane pozycji w góre lub w dół.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ayeo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


Nie napiszę Ci kodu bo nie wiem jak wygląda Twoja baza danych. Musisz poprostu zrobić sobie funkcję, która jako parametr pobiera nazwę kategorii. Funkcja odpytuje baze o pozycję (lub id) tej kategorii, i następnie updatujesz position na position-1, wcześniej pobierasz też kategorię o position o 1 mniejszą niż tamtejk kategorii i zamieniasz na position (o 1 większą niż była) w sensie zamienisz miejscami jakąś kategorię z tą o wyższej pozycji. Oczywiście taka funkcja przesuwa do góry.... Korzystając z rekurencji ta sama funkcja może przesuwać o ile pozycji chcesz, oczywiście nie będzie to wydajne rozwiązanie.

PS jeśli position musi być unikalne to na czas zamiany ustaw je na powiedzmy 0, żeby się niepowtarzały zanim nie updatujesz obu wierszy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował ayeo 16.12.2007, 18:34:33
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 23:27