쿼리문으로 합계를 낼려고 합니다...
본문
to_chan -> idx, name, sca, neo, datetime
to_mark -> idx, name, sca, neo_cnt, datetime
to_chan 테이블에서 neo에 분류별 한글로 저장이 됩니다
분류로 저장된 값 갯수를 to_mark 테이블 neo_cnt에 입력을할려고 하는데 잘안됩니다
$sql = "UPDATE to_mark SET neo_cnt = (select count(idx) from to_chan where neo = '".$neo."') + 1 WHERE idx = ".$idx."";
sql_query($sql);
이렇게하니 값이 안들어는데..어디가 잘못인지 좀 알려주세요..
답변 3
$sql = "update to_mark
set neo_cnt = (
select count(*) from to_chan
where neo='아츠카'
and name='아츠카')
where name = '아츠카'
";
와 같이 name이 동일한것은 동일한 데이타의 연결고리 라는 게 존재라고 판단했습니다.
제가 작성해드린 쿼리문과같이 동일한 조건의 대상이 되어야 합니다.
그리고, 쿼리문에서 " 와 ' 를 잘 구분하셔야 합니다.
$sql = "UPDATE to_mark SET neo_cnt = (select count(idx) +1 from to_chan where neo = '".$neo."') WHERE idx = ".$idx;
이렇게 한번 해보세요
위의 쿼리로 보면
to_mark 의 neo_cnt 에 update를 해야 하는 상황입니다.
그 값은 to_chan에서 neo 의 갯수입니다
하지만,
to_mark에서 어떤 대상을 update를 할지가 명확하지 않습니다.
그래서 idx 라는 기준이 존재하지 않게되기때문에
수정자체가 안됩니다.
위에서 수정문을 만들기전에
to_mark에 서 수정할 대상을 명확하게 (idx값) 판단하는 조건이 선행되야 합니다.
예를들어
neo는 이름기준이라던지
idx는 to_chan과 to_mark가 동일하다던지
이런 key 에 대한 판단이 되어야죠