ボタンの1つにHTTPパラメーターを送信して、フィールドを0にするか1にするかを指定します。また、mysql_*関数の代わりにPDOクラスを使用することを検討してください。
これは、PDO関数を使用して実行する方法の例です。
PHPコード
<?php
if(!isset($_POST['need'])) {
die('Missing need parameter');
} elseif($_POST['need'] !== '0' && $_POST['need'] !== '1') {
die('Invalid need values');
}
if(!isset($_POST['id']) || !is_numeric($_POST['id'])) {
die('Missing ID');
}
$db = new \PDO('mysql:dbname=crackers_cheese;host=localhost', 'muffins', 'sugarcookies');
$statement = $db->prepare("UPDATE `recruitment` SET `Need` = :need WHERE `ID`= :id");
$statement->bindValue(':need', $_POST['need'], \PDO::PARAM_INT);
$statement->bindValue(':id', $_POST['id'], \PDO::PARAM_INT);
$statement->execute();
header("location: /admin.html");
?>
ここではプリペアドステートメントを使用しているため、real_escape_stringなどを使用してデータをエスケープする必要がないため、SQLインジェクション攻撃が軽減されることに注意してください。
SQLインジェクション攻撃を防ぐために、クエリを連結する代わりにパラメータバインディングを使用することをお勧めします。詳細については、「PDOプリペアドステートメントはSQLインジェクションを防ぐのに十分ですか?」を参照してください。
HTMLフォーム
<form method='POST' action='update.php'>
<label for='id'>ID:</label>
<input type='number' name='id' id='id'>
<input type='radio' name='need' value='0' id='needfalse'> <label for='needfalse'>Need = 0</label>
<input type='radio' name='need' value='1' id='needtrue'> <label for='needtrue'>Need = 1</label>
<button type='submit'>Submit</button>
これは、設計された最良のフォームではありません。ここではラジオボタンを使用しました。実際のボタンを使用するのは少し複雑ですが、開始するにはこれで十分です。