Puoi aggiungere un vincolo UNICO alla tua tabella. Questa è un'operazione una tantum:non è necessario farlo ogni volta che viene eseguito lo script, è una modifica alla struttura della tabella. Eseguilo nel tuo strumento di amministrazione MySQL (ad es. phpMyAdmin, Navicat, HeidiSQL, what-have-you):
ALTER TABLE awards_2009_votes ADD UNIQUE (member_id);
Dopo questa modifica, non sarà possibile aggiungere un secondo voto con lo stesso ID membro:l'INSERTO (o AGGIORNAMENTO) avrà esito negativo.
Il vantaggio qui è che il controllo viene eseguito automaticamente nel database, quindi non devi preoccuparti di 1) verificare la presenza di duplicati con il tuo codice o 2) persone che aggiungono più voti manualmente.
Come @middaparka
dice, dovresti usare INSERT IGNORE
per evitare un errore di "chiave duplicata":
$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
}