![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 57 Pomógł: 0 Dołączył: 5.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam taki problem. Mianowicie mam jedną bazę z paroma tabelami. I w jednej tabeli zawarte są punkty użytkowników. Punkty dodawane są za pomocą wpisów do tabeli np: id | punkty 01 | 20 02 | 5 01 | 10 Ja widać user 01 posiada 30 pkt (20+10) a użytkownik 02 posiada 5 pkt Teraz potrzebuje, rozwiązania, która "wykryje" dodanie nowego rekodru, zsumuje rekordy i wynik doda do tabeli w tej samej bazie. Potrafię to zrobić przy pomocy ręcznego wywołania funkcji, lecz potrzebuje to zautomatyzować, by funkcja aktywowała się za każdym razem jak zostanie dodany nowy rekord. Zaznacze, że punkty można dodawać w różny sposób (poprzez kupienie ich, ręczne dodanie z panelu administratora, wpisanie kodu w panelu klienta). Wynik oczywiście jest taki sam, czyli nowy rekord z punktami. Ma ktoś jakąś konstruktywną sugestję jak to rozwiązać? Może użyć CRON? Da się by cron aktywował operacją w momencie dodania rekordu do bazy? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
1. Zmiene się deklaruje między innymi po to, by mieć jakieś wartości "startowe" nawet jak nic się nie ma... Np.
DECLARE points FLOAT DEFAULT 0; 2. Twoje triggery nie są odpowrne na wartości NULL.... 3. Łączenie stringów to tzw konkatenacja - trudny wyraz, ale wart zapamiętania. SET @wygenerowany_kod = CONCAT(Coalesce(@gen_dni_new, '') , Coalesce(@dzien, '') , Coalesce(@random_kod, '') , Coalesce(@rok, '') , Coalesce(@miesiac, '') , Coalesce(@gen_trans_new, '')); EDIT: Jesli jeszcze by nie poszło, to dodaj CAST, czyli... SET @wygenerowany_kod = CONCAT(Cast(Coalesce(@gen_dni_new, '') As Char), ... Ten post edytował mmmmmmm 23.06.2014, 22:17:42 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 01:59 |