wr_num 중복 방지 방법

wr_num 중복 방지 방법

QA

wr_num 중복 방지 방법

본문

그동안 동시에 글이 올라올 경우 순서가 안맞아서 고민중이 었는데 그 이유를 오늘에서야 알아낸거 같네요. (이유만!)

 

제경우 출석체크시 12시 정각부터 1,2,3위에게 포인트 지급을 하고있습니다.

그랬더니 많은 분들이 12시 전에 대기하다 12시 정각에 클릭을 하는 일이 발생합니다.

 

글쓴 시간을 확인해보면 아래 샘플처럼 기록되었습니다.

 

write_update.php에서 마이크로초로 시간을 기록해보니

A가 00:00:00:195476 초

B가 00:00:00:204562 초

A가 B보다 먼저 글을 쓴걸로 나옵니다.

wr_id를 보면 

A가 19283

B가 19284

A가 B보다 먼저 글을 쓴걸로 나옵니다.

 

문제는

list.skin.php 에서   본문 출력할때 순서가 바뀐다는 겁니다.

본문 출력 순서가 $list[$i]['num'] 이거 기준인거 같던데요

본문 출력 ' for ($i=0; $i<count($list); $i++) { '  문에서 기록을 보면

 

회원  |  wr_id  | wr_num |  $lsit[$i]['num']

  A    | 19283  | -12031  |   2

  B    | 19284  | -12031  |   1

 

위처럼 나옵니다.

 

결론적으로

wr_num 값이 동일하면 목록 순서가 역순이 되더군요.

 

질문은 

글 목록을 글쓴시간 순으로 불러오고 싶습니다.

 

그렇기 위해선

wr_num 값을 중복없게 하거나 ( 원래 wr_num값은 중복이 있으면 안되는거 아닌가요? )

$lsit[$i]['num'] 값이 wr_id 번호 순으로 매겨지게 해야할거 같은데 어떻게 해야할지 모르겠습니다.

 

 

 

 

 

이 질문에 댓글 쓰기 :

답변 3

자답입니다.  답은 아니지만.. 

write_update.php 에서

$wr_num = get_next_num($write_table);  명령과  sql_query($sql); 사이에

이프문에 쿼리 하나를 넣었더니 해당되는 사람은 쿼리 수행하고 딜레이 되는 시간동안 다음 사람이 앞질러 가버리는 모양입니다.

그래서 동일한 wr_num이 발생한다고 생각이 되서 일단 수정을 해놨습니다.

 

원본 자체가 $wr_num 번호 받아와서 디비에 쓰기 직전에

다음사람이 번호를 받아오면 동일 번호가 만들어지는 구조같은데요

대책이 있어야 하지 않을까요. 

제경우는 십여명이 1초 사이에 동시 기록이지만

다른 큰 사이트는 이경우 문제가 있지 않을까 싶습니다. 

 

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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