답변 3개
채택된 답변
+20 포인트
9년 전
php 소스 안고치고, 그냥 DB단에서 품목변경테이블과 상품테이블을 바로 실시간으로 연동하려면...
</p><p>/*</p><p>mysql database에서 품목변동값테이블의 상품변동값이 업데이트되면 자동으로 상품테이블의 상품금액을 똑같이 변경하는 트리거 스크립트</p><p>*/</p><p><span style="font-size: 11pt;">DELIMITER $$</span> </p><p><span style="font-size: 11pt;">CREATE</span> </p><p> TRIGGER `auto_price_update` AFTER UPDATE ON `품목변동값테이블명` </p><p> FOR EACH ROW BEGIN</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>UPDATE g5_shop_item </p><p> SET it_price = it_price + new.상품변동값 </p><p> WHERE it_id = new.상품번호</p><p> END$$</p><p>DELIMITER ;</p><p>
로그인 후 평가할 수 있습니다
답변에 대한 댓글 2개
p
passhg
9년 전
�
글러빙
9년 전
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]
댓글을 작성하려면 로그인이 필요합니다.
9년 전
네 변동되는 값의 폭이 크지 않다면
1000원증가, 5000원증가, 1000원감소, 5000원감소
이런식으로 하면되겠죠.
단시 소비자가 가격변동으로인해 혼란이 올수도 있기 때문에
페이지에는 꼭 명시해놓으셔야해요.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
9년 전
수동으로 하실 수 있다면 간단합니다.
관리자 페이지에서 카테고리별 상품금액을 일괄변경할 수 있습니다.
// 카테고리 상품값을 10000원 증가
update {$g5['g5_shop_item_table']} set it_price=it_price+10000 where ca_id='카테고리값'
그게 아니라 증시처럼 변동되는 값을 받아와서 자동으로 처리되게 하시려면
좀 복잡합니다.. 이건 QnA 에서 하기는 힘드실듯해요.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
p
passhg
9년 전
빠른답변 감사드립니다.
update {$g5['g5_shop_item_table']} set it_price=it_price+10000 where ca_id='카테고리값'
위와같이하면 시세가 변동될때마다 업데이트를 수동으로 해야 하는거군요..
만약 수동으로 한다고 치고
관리자메뉴를 하나만들고 여기서 시세변동이 생기면 변동값을 입력받아서 업데이트를 실행하게 만들면 될까요?
update {$g5['g5_shop_item_table']} set it_price=it_price+10000 where ca_id='카테고리값'
위와같이하면 시세가 변동될때마다 업데이트를 수동으로 해야 하는거군요..
만약 수동으로 한다고 치고
관리자메뉴를 하나만들고 여기서 시세변동이 생기면 변동값을 입력받아서 업데이트를 실행하게 만들면 될까요?
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
php나 mysql에 문외한이라 DELIMITER 라는 함수는 잘 모르겠어요
DELIMITER 이게 펑션이라 생각하면 되는거죠? 따로 펑션이나 프로시저선언은 안해도 되는거죠?