sprawa ma się następująco.
Posiadam system zarządzający menu. Przedstawia się on mniej więcej tak:

Teraz. Przy kasowaniu któregoś menu, jeżeli nie jest ostatnim elementem na liście z danej strony (lewa / prawa), należy zmienić wartość `pozycja`. Konkretniej mówiąc - pomniejszyć o 1, aby zachować ciągłość.
Najpierw pobieram `id` elementów, których wartość `pozycja` musi być pomniejszona o 1 - następnie dla każdego elementu wykonuję akcję pomniejszenia.
Całość skryptu wygląda tak:
$sql = "SELECT `kolejnosc`,`id`, `nazwa` FROM `portal_menu` WHERE `kolejnosc` > (SELECT `kolejnosc` FROM `portal_menu` WHERE `id` = '".(int)$id."') AND `pozycja` = (SELECT `pozycja` FROM `portal_menu` WHERE `id` = '".(int)$id."')"; { $sql2 = "UPDATE `portal_menu` SET `kolejnosc` = '".(int)($wiersz['kolejnosc'] - 1)."' WHERE `id` = '".$wiersz['id']."'"; }
Jak nie trudno policzyć - ilość zapytań jest zależna od ilości elementów w menu. Moje pytanie brzmi: Czy można cała akcję wykonać przy mniejszej ilości zapytań?
Bardzo chętnie poczytam o jakiś wskazówkach, pomysłach. Jak pozycji menu będzie 40, to kasując 1 pozycję, wymuszam wykonanie 39 zapytań. Owszem - cała akcja będzie wykorzystywana albo nigdy, albo raz na ruski rok - jednak siedzi mi na śledzionie, że niepotrzebnie obciążam serwer zapytaniami.
Alfą i omegą php z pewnością nie jestem - dlatego z góry dziękuję za wszelkie pomysły, jak uprościć całą akcję.