Vous pouvez ajouter une contrainte UNIQUE à votre table. Il s'agit d'une opération unique - vous n'avez pas besoin de le faire à chaque exécution de votre script, il s'agit d'une modification de la structure de la table. Exécutez ceci dans votre outil d'administration MySQL (par exemple, phpMyAdmin, Navicat, HeidiSQL, what-have-you) :
ALTER TABLE awards_2009_votes ADD UNIQUE (member_id);
Après ce changement, il ne sera plus possible d'ajouter un deuxième vote avec le même identifiant de membre - l'INSERT (ou UPDATE) échouera.
L'avantage ici est que la vérification est effectuée automatiquement dans la base de données, vous n'avez donc pas à vous soucier de 1) vérifier les doublons avec votre code ou 2) les personnes qui ajoutent plusieurs votes manuellement.
Comme @middaparka
dit, vous devez utiliser INSERT IGNORE
pour éviter une erreur "clé en double":
$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
}