영카트5 데이터필드중에서 ..

영카트5 데이터필드중에서 ..

QA

영카트5 데이터필드중에서 ..

답변 3

본문

안녕하세요?

품목의 시세에서 매일 변동되는 값의 데이타를 품목변동값 테이블로 만들고 상품의 값을 연동되게 하려합니다.

혹시 품목변동값 테이블 데이터값을 변경하면 상품금액이 변경되게 할수도 잇을까요?

예를들자면 총액=수량*상품금액+상품고정값  ---> 총액=수량*상품변동값+상품고정값 이렇게 할수있을까요?

 

 

이 질문에 댓글 쓰기 :

답변 3

php 소스 안고치고, 그냥 DB단에서 품목변경테이블과 상품테이블을 바로 실시간으로 연동하려면...

 


/*
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 ;

 

DELIMITER은 펑션이 아니고, mysql 구문에서 "명령어 종료 구분자"입니다.
위의 소스는 php스크립트가 아니라, mysql 스크립트입니다.
mysql database에 접속해서..트리거라는 일종의 mysql함수를 만들어서, 상품변동값테이블에 변동값필드가 업데이트될때마마 자동으로 실행되는거예요..위와 같이 할 경우엔, php소스는 손댈필요가 없어요..
네..따로 펑션이나 프로시저 선언은 필요없습니다.
그리고, mysql상에서(phpMyAdmin같은..) 저 명령어를 실행해야 합니다. php가 아니라..(혹시나 해서..)


/*
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 ;

수동으로 하실 수 있다면 간단합니다.

관리자 페이지에서 카테고리별 상품금액을 일괄변경할 수 있습니다.

 

// 카테고리 상품값을 10000원 증가

update {$g5['g5_shop_item_table']} set it_price=it_price+10000 where ca_id='카테고리값'

 

그게 아니라 증시처럼 변동되는 값을 받아와서 자동으로 처리되게 하시려면

좀 복잡합니다.. 이건 QnA 에서 하기는 힘드실듯해요. 

빠른답변 감사드립니다.
update {$g5['g5_shop_item_table']} set it_price=it_price+10000 where ca_id='카테고리값'
위와같이하면 시세가 변동될때마다 업데이트를 수동으로 해야 하는거군요..

만약 수동으로 한다고 치고
관리자메뉴를 하나만들고 여기서 시세변동이 생기면 변동값을 입력받아서 업데이트를 실행하게 만들면 될까요?

네 변동되는 값의 폭이 크지 않다면

1000원증가, 5000원증가, 1000원감소, 5000원감소

이런식으로 하면되겠죠.

 

단시 소비자가 가격변동으로인해 혼란이 올수도 있기 때문에

페이지에는 꼭 명시해놓으셔야해요. 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 7
© SIRSOFT
현재 페이지 제일 처음으로