Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

PHP/MYSQL प्रति सदस्य केवल एक वोट की इजाजत देता है?

आप अपनी तालिका में एक अद्वितीय बाधा जोड़ सकते हैं। यह एक बार का ऑपरेशन है - हर बार आपकी स्क्रिप्ट चलने पर आपको ऐसा करने की ज़रूरत नहीं है, यह टेबल संरचना में बदलाव है। इसे अपने MySQL व्यवस्थापन टूल (जैसे phpMyAdmin, Navicat, HeidiSQL, what-have-you) में चलाएँ:

ALTER TABLE awards_2009_votes ADD UNIQUE (member_id);

इस बदलाव के बाद, उसी सदस्य आईडी के साथ दूसरा वोट जोड़ना संभव नहीं होगा - INSERT (या UPDATE) विफल हो जाएगा।

यहां लाभ यह है कि चेक स्वचालित रूप से डेटाबेस में किया जाता है, इसलिए आपको चिंता करने की ज़रूरत नहीं है 1) अपने कोड के साथ डुप्लिकेट की जांच करना या 2) लोग मैन्युअल रूप से एकाधिक वोट जोड़ते हैं।

जैसा @middaparka कहते हैं, आपको INSERT IGNORE . का उपयोग करना चाहिए "डुप्लिकेट कुंजी" त्रुटि से बचने के लिए:

$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. मैं उन पंक्तियों की संख्या कैसे गिन सकता हूं जो एक MySQL क्वेरी लौटाती हैं?

  2. गैर-अंग्रेजी वर्णों को कैसे स्टोर करें?

  3. MySQL - चुनें, शामिल हों

  4. mysql तालिका संरचना प्रस्ताव?

  5. जेपीए के माध्यम से यादृच्छिक चयन पंक्तियां