Anda dapat menambahkan batasan UNIK ke tabel Anda. Ini adalah operasi satu kali - Anda tidak perlu melakukan ini setiap kali skrip Anda berjalan, ini adalah perubahan pada struktur tabel. Jalankan ini di alat administrasi MySQL Anda (mis. phpMyAdmin, Navicat, HeidiSQL, apa adanya):
ALTER TABLE awards_2009_votes ADD UNIQUE (member_id);
Setelah perubahan ini, tidak mungkin menambahkan suara kedua dengan ID anggota yang sama - INSERT (atau UPDATE) akan gagal.
Keuntungannya di sini adalah pemeriksaan dilakukan secara otomatis di database, jadi Anda tidak perlu khawatir tentang 1) memeriksa duplikat dengan kode Anda atau 2) orang menambahkan banyak suara secara manual.
Sebagai @middaparka
mengatakan, Anda harus menggunakan INSERT IGNORE
untuk menghindari kesalahan "kunci duplikat":
$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
}