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ół.
|
|
|
|
![]() |
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 |
|
|
|
Luke_Star [php/mysql] Zmiana pozycji rekordu 16.12.2007, 18:14:46
ayeo W relacyjnych bazach danych pozycja nie ma znaczen... 16.12.2007, 18:20:49
Luke_Star ayeo własnie o to mi chodzi, jak zaimplemento... 16.12.2007, 18:26:42
Luke_Star ayeo ten sposób znam wrecz opisłame go posta wyżej... 16.12.2007, 18:38:22
ayeo Jeśli masz 15 kategorii to sobie odpal PHPMYADMIN ... 16.12.2007, 18:44:43
Luke_Star bardzo śmieszne 16.12.2007, 19:10:46
Nattfarinn Zamiast pakować to w pętlę czy reku... 16.12.2007, 19:12:04
ayeo CytatPS. Wybaczcie to łopatologiczne porównanie do... 16.12.2007, 19:14:39 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 23:27 |