Friday, 15 March 2013

php - Possible to have Mysql table with 2 unique columns -


मैं वर्तमान में इस कोड का उपयोग करके गेम स्कोर बचाता है:

  function SubmitScore () {global $ परिणाम, $ db; $ नाम के नाम = $ db- & gt; वास्तविक_स्केप_स्ट्रिंग (स्ट्रिप_टैग्स ($ _ POST ["नाम" "]")); $ स्कोर = $ db- & gt; वास्तविक_स्केप_स्ट्रिंग (स्ट्रिप_टैग्स ($ _ POST ["स्कोर"])); $ Fbusername = $ db- & gt; वास्तविक_स्केप_स्ट्रिंग (स्ट्रिप_टैग्स ($ _ POST ["एफबुसेनाम"])); $ Gamelevel = $ db- & gt; वास्तविक_स्केप_स्ट्रिंग (स्ट्रिप_टैग्स ($ _ POST ["गेमलेवल"])); $ Query1 = "चयन करें * लीडरबोर्ड से WHERE playername = '$ नाम का नाम' '; $ Query2 = "लीडरबोर्ड (नाम का नाम, स्कोर, फ़ेब्यूज़, गेमलेवल) में डालें VALUES ('$ नाम के नाम', $ स्कोर, '$ fbusername', '$ gamelevel')"; $ Query3 = "लीडरबोर्ड अपडेट करें SET स्कोर = $ स्कोर जहां प्लेअम = '$ नाम का नाम' '; $ स्कोर = $ db- & gt; क्वेरी ($ query1); यदि ($ स्कोर- & gt; num_rows == 0) {$ db- & gt; क्वेरी ($ query2); $ परिणाम = "0: नई प्रविष्टि"; } और {$ पंक्ति = $ स्कोर- & gt; fetch_object (); $ पुराने स्कोर = $ पंक्ति- & gt; स्कोर; अगर ($ स्कोर & gt; $ वर्डअंस) {$ db- & gt; क्वेरी ($ query3); $ परिणाम = "0: सफल अद्यतन"; } और $ परिणाम = "0: स्कोर पहले की तुलना में कम था"; }}  

प्लेनाव कॉलम अद्वितीय है और एक नए खिलाड़ी के लिए एक नई पंक्ति सम्मिलित करता है, लेकिन मौजूदा खिलाड़ियों के स्कोर को केवल अपडेट करता है यदि यह मौजूदा से अधिक है।

यह सिर्फ उच्च स्कोर और एक स्तर के लिए ठीक है, लेकिन मुझे उपयोगकर्ता के फेसबुक नाम और बहु-स्तर के खेल के स्तर को भी स्टोर करने की आवश्यकता है। क्या नाम और गेमलेवल कॉलम अद्वितीय होना संभव है, जिससे मैं खिलाड़ी 1 स्तर 1, खिलाड़ी 1 स्तर 2 आदि प्राप्त कर सकता हूं; ध्यान में रखते हुए मुझे उच्च स्कोर भी रखना होगा।

जॉन

MySQL एक विशेष कुंजी के रूप में परिभाषित करने के लिए कॉलम के संयोजन का समर्थन करता है यदि आप नाम के लिए इंडेक्स को निकालते हैं और नाम के लिए एक नया नाम जोड़ते हैं, तो आप जो भी सेट कर रहे हैं MySQL जाता है।

ऐसा एसक्यूएल के साथ किया जाता है:

  वैकल्पिक टैब 'लीडरबोर्ड' ड्रॉप इंडैक्स `अनूठे_ इंडेक्स`; वैकल्पिक टैब 'लीडरबोर्ड' अनदेखी 'अनोखा_इनडेक्स' (`प्लेव्यूम`,` गेमलेवल`) जोड़ें;  

No comments:

Post a Comment