D:\host\scoreman.in\klstate2025\update_result_Workingold.php
<?php
// update_result.php
header('Content-Type: application/json; charset=utf-8');
include('dbconnect.php');
///require_once 'db_connect.php'; // or wherever you create $con (mysqli)
try {
if (!isset($_POST['appno'], $_POST['event'], $_POST['code'])) {
throw new Exception('Missing parameters.');
}
$appno = (int)$_POST['appno'];
$event = $_POST['event'];
$code = strtoupper(trim($_POST['code']));
//echo $event;
// whitelist event columns
$allowed = [
'rink1','rink2','rink3','rink4','rink5','rink6','rink7',
'road1','road2','road3','road4','road5',
'p2p','elim','relay','mixedrelay','p2prd','elimrd',
'marathon','figure','free','pair','solodance','pairdance',
'quartet','precisionskating','showgroup','quadhockey','inlinehockey',
'mixedrollerhockey','speedslalom','pairslalom','classicslalom',
'inlinefree','alpine','downhill','rollerderby','rollerfreestyle',
'skateboarding','scooter'
];
if (!in_array($event, $allowed, true)) {
throw new Exception('Invalid event column.');
}
// allowed result codes
$allowedCodes = ['1','2','3','P','A','F','S'];
if (!in_array($code, $allowedCodes, true)) {
throw new Exception('Invalid result code.');
}
$sql = "UPDATE applications SET `$event` = ? WHERE appno = ? LIMIT 1";
$stmt = mysqli_prepare($con, $sql);
if (!$stmt) throw new Exception('Prepare failed: '.mysqli_error($con));
mysqli_stmt_bind_param($stmt, 'si', $code, $appno);
if (!mysqli_stmt_execute($stmt)) {
throw new Exception('Execute failed: '.mysqli_stmt_error($stmt));
}
mysqli_stmt_close($stmt);
echo json_encode(['ok' => true]);
} catch (Throwable $e) {
echo json_encode(['ok' => false, 'error' => $e->getMessage()]);
}