묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
mysql에 데이타 검색하여 인원제한 하기
2003.09.27 23:40
최대인원이 100명까지 제한을 두어서 어떠한 게임에 참여할시에 참가인원을 제한을 두었습니다.
제한 방법은
if ($inwon >= $maxinwon)
{
echo ("
<script>
alert('최대참여인원 참가로 게임이 시작되었습니다 다음기회를 이용해주세요')
history.go(-1)
</script>
");
exit;
}
$result = mysql_query("update $board set inwon = inwon+ 1 ");
$inwon 변수(mysql에서 불러옴)가 $maxinwon보다 크거나 같을경우 메시지를 띄운후 그전 페이지로 복귀한다.
아직 최대 인원이 안되었으면 $board라는 테이블에 inwon이라는 필드의 값을 1+ 시켜줍니다.
99명까지는 잘되는데...
현재 인원 99명이라는 글을 보고 설문 버튼을 동시에 누른사람이 4명입니다.
동시에(거의동시) 누르게 되면 4명의 처리 프로세스가
위의 구문처럼 되어 inwon >= maxinwon 이라는 if문이 false가 되어버려서(inwon이 아직 99라서)
현재 인원이 103명이 되어버립니다. mysql에는 아직 inwon이라는 필드가 99로 됐을때(4명이 동시에 위 구문을 실행시키면
아직 최대인원이 안 되었기 때문에 그런것으로 보입니다.) 그다음 참여자 부터는 잘 되고요
해결방법 좀 가르쳐 주세요 이거 때문에 머리가 윽으윽...
제한 방법은
if ($inwon >= $maxinwon)
{
echo ("
<script>
alert('최대참여인원 참가로 게임이 시작되었습니다 다음기회를 이용해주세요')
history.go(-1)
</script>
");
exit;
}
$result = mysql_query("update $board set inwon = inwon+ 1 ");
$inwon 변수(mysql에서 불러옴)가 $maxinwon보다 크거나 같을경우 메시지를 띄운후 그전 페이지로 복귀한다.
아직 최대 인원이 안되었으면 $board라는 테이블에 inwon이라는 필드의 값을 1+ 시켜줍니다.
99명까지는 잘되는데...
현재 인원 99명이라는 글을 보고 설문 버튼을 동시에 누른사람이 4명입니다.
동시에(거의동시) 누르게 되면 4명의 처리 프로세스가
위의 구문처럼 되어 inwon >= maxinwon 이라는 if문이 false가 되어버려서(inwon이 아직 99라서)
현재 인원이 103명이 되어버립니다. mysql에는 아직 inwon이라는 필드가 99로 됐을때(4명이 동시에 위 구문을 실행시키면
아직 최대인원이 안 되었기 때문에 그런것으로 보입니다.) 그다음 참여자 부터는 잘 되고요
해결방법 좀 가르쳐 주세요 이거 때문에 머리가 윽으윽...
가능하다는 생각을 해본적이 없는데..;