write_update.tail.skin.php 에 순번 다는 쿼리좀 봐주세요

write_update.tail.skin.php 에 순번 다는 쿼리좀 봐주세요

QA

write_update.tail.skin.php 에 순번 다는 쿼리좀 봐주세요

본문


sql_query( " UPDATE {$write_table} SET wr_10 = concat( ( SELECT count(*) FROM {$write_table} WHERE wr_datetime >= curdate() ), '등' )  WHERE wr_id = '{$wr_id}' " );

 

위 코드를  write_update.tail.skin.php 에 넣었습니다.

 

문제는 회원들 여러명이 등시에 글을 쓸경우

중복 카운드가 발생하거나 기록이 안되는 현상이 발생합니다.

 

write_update.tail.skin.php 에서 $list[$i]['num'] 를 가져오는게 안되서 위 코드를 쓴건데 역시 문제가 있네요.

좀더 나은 방법이 있을까요?

 

하고싶은건 write_update.tail.skin.php 에서 $list[$i]['num']를 가져오는 방법을 알고싶습니다. (방금 작성한 글이 오늘 몇번째로 작성된건지에 따라 처리할 일을 하고 목록으로 넘어야 하기에..)

 

이 질문에 댓글 쓰기 :

답변 4


write_update.head.skin.php에서 다음과 같이 해보세요
if(!$w){ //---수정시는 제외하고 등록시에만 처리
 
 $today = G5_TIME_YMD; $add_qry ='';
if($board['bo_1_subj'] < $today){ $wr_10 = 1; $add_qry="bo_1_subj = '$today',"; }
else $wr_10 = $board['bo_1'] + 1;
 
 sql_query("update {$g5['board_table']} set $add_qry bo_1='$wr_10' where bo_table='$bo_table' ");
 
}
$wr_10 .='등'; //wr_10에 굳이 몇등 할때의 <등>을 넣고자한다면
-------------------------
그리고 수정시에 등위가 삭제되면 안되니 write.skin.php에서 form안에 추가
<input type='hidden' name='wr_10' value="<?php echo $write['wr_10']?>">
 

 

 

 

 

write_update.tail.skin.php 이 페이지에서

$wr_num 변수 가져와질겁니다.

https://myinfrabox.tistory.com/75

lock 사용법을 검토해 보세요.

wr_num 이 아닌 wr_id 로 하셔야 유니크로 기록 됩니다.

update 전에 해당 게시판의 wr_datetime 으로 오늘 게시글수 +1 하시면되시구요

 

그리고 update 하실때 update.head 가 아닌 update.tail 로 하세요. 그래야 글 작성이 끝난 시점에서

정확한 카운트가 가능하거든요.

애드프로님께서 말씀하신걸 구현한다고 한게 위 질문의 코드인데... 아닌가요.. ㅜㅜ; 어디서부터 잘못된걸까요 ^^;


sql_query( " UPDATE {$write_table} SET wr_10 = concat( ( SELECT count(*) FROM {$write_table} WHERE wr_datetime >= curdate() ), '등' )  WHERE wr_id = '{$wr_id}' " );

답변을 작성하시기 전에 로그인 해주세요.
전체 17,115
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT