insert_point 어떻하면 계속 삽입할 수 있나요.
본문
제가 그누보드를 잘 몰라서 질문드립니다.
도대체 뱅글뱅글 돌려놔서 ㅋ
고수님 알려주세요.
질문은 다음과 같습니다.
insert_point 함수로 값을 보내는데, 계속 입력이 되지 않고 있습니다.
계속 입력되게 할려면 어떻게 해야 하나요?
쉽게 해결 방법이 없는가요?
<?php
include_once('./_common.php');
// POST 데이터 받기
$winner_name = $_POST['winner_name'];
$loser_name = $_POST['loser_name'];
$winner_point = 100; // 지급 포인트
$loser_point = -100; // 차감 포인트
insert_point(
$winner_name,
$winner_point,
'오목 배틀게임 승리 포인트',
'omok',
$winner_score,
'win'
);
// 패자 포인트 차감
insert_point(
$loser_name,
$loser_point,
'오목 배틀게임 패배 포인트',
'omok',
$loser_score,
'lose'
);
echo "포인트 처리 완료";
답변 2
아래의 내용도 한번 참고를 해보세요..
1. 매 게임마다 고유한 ID를 생성
<?php
include_once('./_common.php');
// POST 데이터 받기
$winner_name = $_POST['winner_name'];
$loser_name = $_POST['loser_name'];
$winner_point = 100;
$loser_point = -100;
// 고유한 게임 ID 생성 (타임스탬프 + 랜덤)
$game_id = time() . '_' . uniqid();
// 승자 포인트 지급
insert_point(
$winner_name,
$winner_point,
'오목 배틀게임 승리 포인트',
'omok',
$game_id, // 고유 ID 사용
'win_' . $game_id // 액션도 고유하게
);
// 패자 포인트 차감
insert_point(
$loser_name,
$loser_point,
'오목 배틀게임 패배 포인트',
'omok',
$game_id, // 같은 게임 ID
'lose_' . $game_id // 액션은 다르게
);
echo "포인트 처리 완료";
?>
2. 시간 기반 고유값 사용
// 마이크로초까지 포함한 타임스탬프
$unique_id = microtime(true) . '_' . mt_rand();
insert_point(
$winner_name,
$winner_point,
'오목 배틀게임 승리 포인트',
'omok',
$unique_id,
'win'
);
3. DB에 게임 번호를 저장하고 증가시키는 방법
// 마지막 게임 번호 조회 후 +1
$sql = "SELECT MAX(CAST(SUBSTRING_INDEX(po_rel_id, '_', -1) AS UNSIGNED)) as max_game
FROM {$g5['point_table']}
WHERE po_rel_table = 'omok'";
$row = sql_fetch($sql);
$game_number = ($row['max_game'] ?? 0) + 1;
$game_id = 'game_' . $game_number;
insert_point(
$winner_name,
$winner_point,
'오목 배틀게임 승리 포인트',
'omok',
$game_id,
'win'
);
같은 값이 있으면 들어가지 않아서 오목 배틀게임 제목부분이나 omok lose 중에 하나를 고유값으로 겹치지 않게 해주시면 됩니다.