PHP/PostgreSQL コーディングに問題があります。それはすべて投票システムに関するものです。コードは次のとおりです。
$queryCandidates = pg_query("Select * From candidate as can, positions as pos, partylist as par, election_date as elpe, course as cou Where pos.position_id = can.position_id And par.partylist_id = can.partylist_id And elpe.election_date_id = can.election_date_id And cou.course_id = can.course_id AND elpe.status = 'Started' ORDER BY pos.position_id ASC");
while($result = pg_fetch_array($queryCandidates, NULL, PGSQL_ASSOC))
{
echo '<tr><td class="positionTD">'.$result['position_name']. '</td><td><label><input type="radio" name="'.$result['position_name'].'" value="'.$result['candidate_id'].'"/> '.$result['firstname']. ' '. $result['lastname']. '<td>' .$result['candidate_id'].'</td></label></td></tr>';
}
echo '<tr><td colspan="2"><input type="submit" value="Submit Votes" name="Submit"/></td></tr>';
次に、これにより投票フォームが表示されます。
投票システムでは、各ポジションで 1 人の候補者のみを選択できます。しかし、私の問題は、ユーザーが「投票を送信」ボタンをクリックすると、チェックされていないラジオボタンがデータベースに追加されることです。したがって、ここに投票を挿入するためのコードがあります。
$queryVotes = pg_query("Select * From candidate");
while($result = pg_fetch_array($queryVotes, NULL, PGSQL_ASSOC))
{
$getVotes = pg_query("INSERT INTO vote (vote_id, candidate_id, voter_id) VALUES (default, '".$result['candidate_id']."', '".$_SESSION['voter_id']."')");
}
注: 名前の横にある数字は、候補の主キーです。
ご覧のとおり、番号「5」を選択しませんでした。しかし、PostgreSQLデータベースでは、チェックしていないのに挿入されていました。