답변 3개 / 댓글 3개
채택된 답변
+20 포인트
php 소스 안고치고, 그냥 DB단에서 품목변경테이블과 상품테이블을 바로 실시간으로 연동하려면...
Copy
/*mysql database에서 품목변동값테이블의 상품변동값이 업데이트되면 자동으로 상품테이블의 상품금액을 똑같이 변경하는 트리거 스크립트*/DELIMITER $$ CREATE TRIGGER `auto_price_update` AFTER UPDATE ON `품목변동값테이블명` FOR EACH ROW BEGIN UPDATE g5_shop_item SET it_price = it_price + new.상품변동값 WHERE it_id = new.상품번호 END$$DELIMITER ;
답변에 대한 댓글 2개
DELIMITER은 펑션이 아니고, mysql 구문에서 "명령어 종료 구분자"입니다.
위의 소스는 php스크립트가 아니라, mysql 스크립트입니다.
mysql database에 접속해서..트리거라는 일종의 mysql함수를 만들어서, 상품변동값테이블에 변동값필드가 업데이트될때마마 자동으로 실행되는거예요..위와 같이 할 경우엔, php소스는 손댈필요가 없어요..
네..따로 펑션이나 프로시저 선언은 필요없습니다.
그리고, mysql상에서(phpMyAdmin같은..) 저 명령어를 실행해야 합니다. php가 아니라..(혹시나 해서..)
[code]
/*
mysql database에서 품목변동값테이블의 상품변동값 필드가 업데이트되면 자동으로 상품테이블의 상품금액을 똑같이 변경하는 트리거 스크립트
*/
DELIMITER $$
CREATE TRIGGER `auto_price_update` AFTER UPDATE ON `품목변동값테이블명`
FOR EACH ROW
BEGIN
IF NEW.상품변동값필드명 <> OLD.상품변동값필드명 THEN
UPDATE g5_shop_item
SET it_price = it_price + NEW.상품변동값필드명
WHERE it_id = NEW.상품번호필드명;
END IF;
END$$
DELIMITER ;
[/code]
위의 소스는 php스크립트가 아니라, mysql 스크립트입니다.
mysql database에 접속해서..트리거라는 일종의 mysql함수를 만들어서, 상품변동값테이블에 변동값필드가 업데이트될때마마 자동으로 실행되는거예요..위와 같이 할 경우엔, php소스는 손댈필요가 없어요..
네..따로 펑션이나 프로시저 선언은 필요없습니다.
그리고, mysql상에서(phpMyAdmin같은..) 저 명령어를 실행해야 합니다. php가 아니라..(혹시나 해서..)
[code]
/*
mysql database에서 품목변동값테이블의 상품변동값 필드가 업데이트되면 자동으로 상품테이블의 상품금액을 똑같이 변경하는 트리거 스크립트
*/
DELIMITER $$
CREATE TRIGGER `auto_price_update` AFTER UPDATE ON `품목변동값테이블명`
FOR EACH ROW
BEGIN
IF NEW.상품변동값필드명 <> OLD.상품변동값필드명 THEN
UPDATE g5_shop_item
SET it_price = it_price + NEW.상품변동값필드명
WHERE it_id = NEW.상품번호필드명;
END IF;
END$$
DELIMITER ;
[/code]
수동으로 하실 수 있다면 간단합니다.
관리자 페이지에서 카테고리별 상품금액을 일괄변경할 수 있습니다.
// 카테고리 상품값을 10000원 증가
update {$g5['g5_shop_item_table']} set it_price=it_price+10000 where ca_id='카테고리값'
그게 아니라 증시처럼 변동되는 값을 받아와서 자동으로 처리되게 하시려면
좀 복잡합니다.. 이건 QnA 에서 하기는 힘드실듯해요.
답변을 작성하려면 로그인이 필요합니다.
php나 mysql에 문외한이라 DELIMITER 라는 함수는 잘 모르겠어요
DELIMITER 이게 펑션이라 생각하면 되는거죠? 따로 펑션이나 프로시저선언은 안해도 되는거죠?