Do tabulky můžete přidat UNIKÁTNÍ omezení. Toto je jednorázová operace – nemusíte to dělat při každém spuštění skriptu, jde o změnu struktury tabulky. Spusťte to ve svém nástroji pro správu MySQL (např. phpMyAdmin, Navicat, HeidiSQL, what-have-you):
ALTER TABLE awards_2009_votes ADD UNIQUE (member_id);
Po této změně nebude možné přidat druhý hlas se stejným ID člena – INSERT (nebo UPDATE) se nezdaří.
Výhodou je, že kontrola probíhá automaticky v databázi, takže se nemusíte starat o 1) kontrolu duplikátů pomocí vašeho kódu nebo 2) ruční přidávání více hlasů.
Jako @middaparka
říká, že byste měli použít INSERT IGNORE
abyste se vyhnuli chybě „duplicitního klíče“:
$sql_query = mysql_query("INSERT IGNORE INTO awards_2009_votes (`member_id`, `region`, `coach`, `official`, `volunteer`, `young_volunteer`) VALUES ('$memberid', '$region', '$coach', '$official', '$volunteer', '$young_volunteer')") or die (mysql_error());
if (mysql_insert_id()) {
// row was inserted - vote added
} else {
// row was not inserted - already voted
}