테스트 사이트 - 개발 중인 베타 버전입니다

쿼리문으로 합계를 낼려고 합니다... 채택완료

천천히한걸음 6년 전 조회 2,340

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개

채택된 답변
+20 포인트
플래토
6년 전

$sql = "update to_mark

          set neo_cnt = (

                  select count(*) from to_chan

                  where neo='아츠카'

                         and name='아츠카')

          where name = '아츠카' 

          ";

와 같이 name이 동일한것은 동일한 데이타의 연결고리 라는 게 존재라고 판단했습니다.

 

제가 작성해드린 쿼리문과같이 동일한 조건의 대상이 되어야 합니다.

그리고, 쿼리문에서 " 와  ' 를 잘 구분하셔야 합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

플래토
6년 전

위의 쿼리로 보면

 

to_mark 의 neo_cnt 에 update를 해야 하는 상황입니다.

 

그 값은 to_chan에서 neo 의 갯수입니다

 

하지만, 

to_mark에서 어떤 대상을 update를 할지가 명확하지 않습니다.

 

그래서 idx 라는 기준이 존재하지 않게되기때문에

수정자체가 안됩니다.

 

위에서 수정문을 만들기전에

 

to_mark에 서 수정할 대상을 명확하게 (idx값) 판단하는 조건이 선행되야 합니다.

 

예를들어

 

neo는 이름기준이라던지

idx는 to_chan과  to_mark가 동일하다던지

이런 key 에 대한 판단이 되어야죠

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

천천히한걸음
6년 전
친절한 답변 감사합니다 쿼리문을 강제로 해서 sql돌려본 보니 값은 제대로 들어가서 출력이 됩니다
$sql = "UPDATE to_mark SET neo_cnt = (select count(name) from to_chan where neo = "아스카") WHERE name= "아스카" ";
결과 neo_cnt : 3 라고
그런데 이걸 다시 원래되로 하면 역시 안되네요 ㅠ

댓글을 작성하려면 로그인이 필요합니다.

6년 전

$sql = "UPDATE to_mark SET neo_cnt = (select count(idx) +1 from to_chan where neo = '".$neo."') WHERE idx = ".$idx;

 

이렇게 한번 해보세요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

천천히한걸음
6년 전
친절한 답변 감사합니다..하지만 역시 값이 안들어갑니다..ㅠㅠ 분명 어딘가 잘못된거 같은데..

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인