Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> trigger - problem
stal-sw
post
Post #1





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 27.06.2002
Skąd: Stalowa Wola

Ostrzeżenie: (0%)
-----


Witam.
Mam w bazie danych 2 tabele:

OCENY:
id, user_id, obiekt_id, srednia_ocena

OBIEKTY
id, nazwa, srednia_ocena

W tabeli OCENY uzytkownicy dodaja sobie oceny obiektow - podczas dodania rekordu do tej tabeli za pomoca php robie update sredniej oceny z wszystkich dokonanych ocen dla danego obiektu (lacznei z nowym wpisem) do tabeli OBIEKTY - i robie udpate pola srednia_ocena.

Jak zrobic tak ze podczas kasowania rekordu w tabeli OCENY (czy to za pomoca php czy za pomoca phpmyadmina) od nowa wyliczyc srednia dla OBEIKTU (o kasowanym - obiekt_id) i wprowdzic wartosc do pola srednia_ocena w tabli OBIEKTY.

W taki sposob robie obliczenia podczas dodawania nowej oceny do bazy za pomoca php:
  1. $ocsrednia = $db->get_row("SELECT TRUNCATE(AVG(ocena),4) as srednia FROM oceny WHERE id_obiektu='".$id_obiektu."' ");
  2. $db->query("UPDATE OBIEKTY SET ocsrednia='".$ocsrednia->srednia."' WHERE id='".$id_obiektu."'");



Teraz chcialbym zrobic cos podobnego przy uzyciu tylko bazy danych - i zeby to odbywalo sie zawsze podczas kasowania rekordu w tabeli OCENY (tylko obliczenia maja byc dokonywane wylacznie dla kasowanego OBIEKT_ID gory dzieki za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cojack
post
Post #2





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


http://dev.mysql.com/doc/refman/5.0/en/trigger-syntax.html
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 01:29