![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Witam,
chcę napisać sobie procedurę aktualizującą ilość produktów w danej kategorii (uwzględniając hierarchię drzewiastą). Struktura tabel w uproszczeniu wygląda tak:
czyli w zasadzie standardzik. Napisałem procedurę, która ma obsługiwać aktualizację pola `cards` w tabeli `category`:
Problem w tym, że nie wywołuje się rekurencja. Możliwe, że po prostu warunek nie jest spełniony (NULL NULLowi nierówny, ale nie wiem jak inaczej zapisać warunek z wykorzystaniem np. NOT NULL). Wywołując np.:
aktualizowana jest tylko kategoria o `id` = 3. Jest ona podkategorią dla kategorii o `id` = 1, ale tu już aktualizacja nie następuje. Dodam jeszcze, że:
pokazuje 255 więc przypuszczam, że problem jest jednak w warunku. Proszę o pomoc, wskazówkę. pion PS: problem na pewno jest w warunku - jego usunięcie i każdorazowe wywołanie rekurencji aktualizuje pola (no ale są to niepotrzebne wywołania procedury). // EDIT: Problem rozwiązałem inaczej: dodałem IFNULL do SELECTa i zmieniłem warunek. Może komuś się przyda:
Ten post edytował phpion 21.06.2008, 09:23:21 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Do NULLi nie uzywasz zwyklych operatorow, bo zawsze zwracaja ci false.
Ale jak to zapisac - nie wiem, nie bawilem sie procedurami. -------------------- Nie lubię jednorożców.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 2.07.2025 - 13:26 |