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개

채택된 답변
+20 포인트

아래의 내용도 한번 참고를 해보세요..

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'
);

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

감사합니다. (__)

댓글을 작성하려면 로그인이 필요합니다.

같은 값이 있으면 들어가지 않아서 오목 배틀게임 제목부분이나 omok lose 중에 하나를 고유값으로 겹치지 않게 해주시면 됩니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

감사합니다.(__)

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고