Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][MYSQL] Zliczanie rekordów o danych parametrach
Forum PHP.pl > Forum > Przedszkole
krzychu0808
Witam....
jestem początkujący w baza danych używam do administracji phpmyadmin...
mam 2 tabele:
1. user
2. smich_kawaly
i chodzi mi o utworzenie pola w tabeli user w którym będzie ilość kawałów danego użytkownika...
i nie wiem czy da się to zrobić w bazie danych że będzie się to robić automatycznie czy w php przy dodawaniu kawału liczba ma wzratać +1... bo w php daje zapytanie
  1. SELECT count(*) FROM smich_kawaly WHERE dodal_id='$dane_user[id]' AND STATUS=2

i wyświetla mi ilość kawałów tego użytkownika...

lub może przed każdym dodaniem kawału sprawdzić liczbę dodanych kawałów i przez tego użytkownika i pole dodał będzie aktualizowane o tą liczę ale większą o 1
jestem początkujący proszę o sugestie....
Crozin
Dałoby się to zrobić przy pomocy Triggerów (patrz: manual) a w PHP wystarczyłoby po poporawnym dodaniu kawału wykonać jedno zapytanie
  1. UPDATE user SET liczbaDodanychKawalow = liczbaDodanychKawalow + 1 WHERE idUzytkownika = X;
krzychu0808
w php nie chcę za bardzo robić bo często usuwam wpisy przez phpmyadmin i mam na stronie potwierdzanie dowcipów więc kicha... a co do bazy to znalazłem w manualu to o tym "Trigger" ale nie wiem o co w tym chodzi bo nie znam za bardzo angielskiego znalazłem:Link
proszę o jakiś przykładzik użycia...
Crozin
W takim razie: http://www.google.com/search?hl=pl&saf...&lr=lang_pl
na 100% będą przykady winksmiley.jpg
elemek
  1. CREATE TRIGGER nowy_kawal
  2. after INSERT ON smich_kawaly
  3. FOR each row
  4. UPDATE user
  5. SET licznik_kawalow = licznik_kawalow + 1
  6. WHERE user.id = new.dodal_id;
  7.  
  8. CREATE TRIGGER papa_kawal
  9. after DELETE ON smich_kawaly
  10. FOR each row
  11. UPDATE user
  12. SET licznik_kawalow = licznik_kawalow - 1
  13. WHERE user.id = old.dodal_id;
krzychu0808
w phpmyadmin w SQL bazy
dalem:
  1. CREATE TRIGGER nowy_kawal
  2. after INSERT ON smich_kawaly
  3. FOR each row
  4. UPDATE user
  5. SET licznik_kawalow = licznik_kawalow + 1
  6. WHERE user.id = new.dodal_id;


dostalem:
  1. zapytanie SQL:
  2.  
  3. CREATE TRIGGER nowy_kawal AFTER INSERT ON smich_kawaly
  4. FOR each
  5. ROW UPDATE user SET licznik_kawalow = licznik_kawalow +1 WHERE user.id = new.dodal_id
  6.  
  7. MySQL zwrócił komunikat: Dokumentacja
  8. #1064 - Something is wrong in your syntax obok 'trigger nowy_kawal after insert on smich_kawaly for each row upd' w linii 1
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.