Re: [lms] Przydatny trigger - historia warning'ów i access'ów
Robert CyberM pisze:
Dnia niedziela, 18 października 2009 17:09, napisałeś:
Witam, Ostatnio wyłączyłem kilka osób za niepłacenie. Pozostało pytanie czy zostaje jakiś ślad kiedy taka osoba została wyłączona lub ma
warning?
30 minut i jest :) wpisy pojawiają sie w polu location dla każdego kompa. ( do działania potrzeba mysql 5.0 lub wyżej - z obsługą triggerów oczywiście )
Poprawki mile widziane ( do zrobienia napewno jakiś ogranicznik dla ilości wpisów ) , pozdrawiam Miłosz.
use lms; create trigger trigger1 BEFORE UPDATE ON nodes FOR EACH ROW BEGIN
if old.warning <> new.warning then
IF NEW.warning=0 THEN SET NEW.location = concat(NEW.location, "wylaczony warning ", now(), "<br>" ) ; end if;
IF NEW.warning=1 THEN SET NEW.location = concat(NEW.location, "<b>wlaczony warning</b> ", now() , "<br>" ) ; end if;
end if;
if old.access <> new.access then
IF NEW.access=0 THEN SET NEW.location = concat(NEW.location, "<b>wylaczony access</b> ", now(), "<br>" ) ; end if;
IF NEW.access=1 THEN SET NEW.location = concat(NEW.location, "wlaczony access ", now() , "<br>" ) ; end if;
end if;
end
czesc pierwsze 3 linie rozumie, reszte tez ma przelknac mysql ? nie bardzo
rozumie
jak to zaaplikowac :(
Robert CyberM
Witam, szybki opis: 1. logujesz sie do mysql mysql -p oczywiscie podajesz haslo. 2. w samym mysql ( zmieniasz baze na lms ); use lms; 3. wpisujesz komende, zmieniającą koniec lini na znak | delimiter | 4. wklejasz cały kod:
create trigger trigger1 BEFORE UPDATE ON nodes FOR EACH ROW BEGIN
if old.warning <> new.warning then
IF NEW.warning=0 THEN SET NEW.location = concat(NEW.location, "wylaczony warning ", now(), "<br>" ) ; end if;
IF NEW.warning=1 THEN SET NEW.location = concat(NEW.location, "<b>wlaczony warning</b> ", now() , "<br>" ) ; end if;
end if;
if old.access <> new.access then
IF NEW.access=0 THEN SET NEW.location = concat(NEW.location, "<b>wylaczony access</b> ", now(), "<br>" ) ; end if;
IF NEW.access=1 THEN SET NEW.location = concat(NEW.location, "wlaczony access ", now() , "<br>" ) ; end if;
end if;
end
5. wpisujesz znak | i enter. powinno pojawić sie coś w rodzaju query ok. Wylogowujesz sie z mysql (quit) sprawa załatwiona.
Pozdrawiam Miłosz.
__________ Informacja programu ESET Smart Security, wersja bazy sygnatur wirusow 4537 (20091023) __________
Wiadomosc zostala sprawdzona przez program ESET Smart Security.
Witam, szybki opis:
- logujesz sie do mysql
mysql -p oczywiscie podajesz haslo. 2. w samym mysql ( zmieniasz baze na lms ); use lms; 3. wpisujesz komende, zmieniającą koniec lini na znak | delimiter | 4. wklejasz cały kod:
<ciach>
- wpisujesz znak | i enter.
powinno pojawić sie coś w rodzaju query ok. Wylogowujesz sie z mysql (quit) sprawa załatwiona.
no i zonk mysql Ver 14.14 Distrib 5.1.39
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'THEN SET NEW.info = concat(NEW.info, "wylaczony warning ",now(), "<br>" ) ' at line 6
p.s. zmienilem tylko pole na info jak widac ale to bez znaczenia
uczestnicy (2)
-
Miłosz Szewczak
-
Robert