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 변수 가져와질겁니다.
wr_num 이 아닌 wr_id 로 하셔야 유니크로 기록 됩니다.
update 전에 해당 게시판의 wr_datetime 으로 오늘 게시글수 +1 하시면되시구요
그리고 update 하실때 update.head 가 아닌 update.tail 로 하세요. 그래야 글 작성이 끝난 시점에서
정확한 카운트가 가능하거든요.
답변을 작성하시기 전에 로그인 해주세요.