Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

PHP/MYSQL hanya mengizinkan satu suara per anggota?

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
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Unggah Gambar menggunakan Php dan mySQL

  2. Format angka menjadi 2 tempat desimal

  3. Performa MySQL pada 6 juta tabel baris

  4. Bagaimana cara terhubung ke database MySQL jarak jauh melalui SSL menggunakan Play Framework?

  5. Menambahkan Kesalahan Kunci Asing