File manager - Edit - /home/ipsc/api/hit_target.php
Back
<?php require_once "../connection.php"; header("Content-Type: application/json"); $player_code = $_POST['player_code'] ?? null; $target_id = $_POST['target_id'] ?? null; $time = intval($_POST['time'] ?? 0); if (!$player_code) { echo json_encode(["success" => false, "message" => "No player_code"]); exit; } /* ===== หา player ที่กำลังแข่ง ===== */ $stmt = $conn->prepare("SELECT id FROM players WHERE code=? AND status='running' LIMIT 1"); $stmt->bind_param("s", $player_code); $stmt->execute(); $player = $stmt->get_result()->fetch_assoc(); if (!$player) { echo json_encode(["success" => false, "message" => "No running player"]); exit; } $player_id = $player['id']; /* ===== ดึง target_count จาก event ===== */ $event = $conn->query("SELECT target_count FROM event LIMIT 1")->fetch_assoc(); $target_count = (int)$event['target_count']; /* ===== นับจำนวนเป้าที่ player ยิงแล้ว ===== */ $count = $conn->query("SELECT COUNT(*) AS total FROM target_log WHERE player_id=$player_id")->fetch_assoc()['total']; /* ===== ตรวจสอบก่อน insert ===== */ if ($target_id && $target_id !== "0" && $count < $target_count) { $check = $conn->prepare("SELECT id FROM target_log WHERE player_id=? AND target_id=?"); $check->bind_param("is", $player_id, $target_id); $check->execute(); if ($check->get_result()->num_rows == 0) { $insert = $conn->prepare("INSERT INTO target_log (player_id, target_id, hit_time) VALUES (?, ?, NOW())"); $insert->bind_param("is", $player_id, $target_id); $insert->execute(); $count++; // เพิ่ม count หลัง insert } } /* ===== อัปเดตเวลา ===== */ $update = $conn->prepare("UPDATE players SET time=? WHERE id=?"); $update->bind_param("ii", $time, $player_id); $update->execute(); /* ===== ถ้ายิงครบ ===== */ if ($count >= $target_count) { // ปิดการแข่งขันคนปัจจุบัน $conn->query("UPDATE players SET status='finished' WHERE id=$player_id"); // ตั้งคนถัดไปเป็น ready $conn->query("UPDATE players SET status='ready' WHERE status='waiting' ORDER BY id ASC LIMIT 1"); } echo json_encode([ "success" => true, "player" => $player_code, "time" => $time, "hit" => $count, "target_count" => $target_count ]);
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.41 |
proxy
|
phpinfo
|
Settings