आशा है कि यह मदद करता है:
क) मैंने कुछ ऐसा ही किया जहां मैं अद्वितीय कोड उत्पन्न कर रहा था जिन्हें यूआरएल के रूप में इस्तेमाल किया जाना था। मैंने इसे कोड जेनरेट करने के लिए लिखा था:
private function _generateCode($length = 5) {
$characters = 'bcdfghjkmnpqrstvwxyz';
$string = '';
for ($i = 0; $i < $length; $i++) {
$string .= $characters[rand(0, strlen($characters) - 1)];
}
return $string;
}
$characters "अनुमत" वर्णों की एक स्ट्रिंग है। हमने स्वरों को हटाना चुना ताकि अवांछित शब्द बनाने का कोई मौका न मिले :) आप इसे बदल सकते हैं। इसे लिखने के और भी आसान तरीके हैं लेकिन हमें कुछ खास चाहिए।
आप इसे इस तरह इस्तेमाल करेंगे:
$unique_code = _generateCode();
ख) इसके लिए बस अपने इन्सर्ट स्टेटमेंट को एक सेलेक्ट स्टेटमेंट में लपेटें, उस यूनिक कोड की जाँच करें। यदि कोड मौजूद है तो दूसरा कोड जनरेट करें और पुन:प्रयास करें। ऐसा करने का एक तरीका है (एनबी:इसका परीक्षण नहीं किया गया है और यह एक अनंत लूप के लिए अतिसंवेदनशील हो सकता है यदि आप ऐसी स्थिति में आते हैं जहां आपने अपने सभी कोड का उपयोग किया है;) और आपको शायद एक चेक जोड़ना चाहिए यह सुनिश्चित करने के लिए कि INSERT सफल रहा):
$unique_code = "";
$inserted = false;
// Keep looping until we've inserted a record
while(!$inserted) {
// Generate a code
$unique_code = _generateCode();
// Check if it exists
if ($result = mysqli->query("SELECT unique_code FROM coming_soon_emails WHERE unique_code = '$unique_code'")) {
// Check no record exists
if ($result->num_rows == 0) {
// Create new record
$mysqli->query("INSERT INTO coming_soon_emails (email,unique_code) VALUES ('" . $mysqli->real_escape_string($_POST['email']) . "','$unique_code')");
// Set inserted to true to ext loop
$inserted = true;
// Close the result object
$result->close();
}
} else {
// Quit if we can't check the database
die('Something went wrong with select');
}
}
// Output the code
echo $unique_code;
सी) यूनिक कोड डालने के लिए बस इसे अपने इन्सर्ट स्टेटमेंट में जोड़ें जहां $unique_code वेरिएबल है जो ऊपर दिए गए फंक्शन से रिटर्न वैल्यू असाइन करता है:
$mysqli->query("INSERT INTO coming_soon_emails (email,unique_code) VALUES ('".$mysqli->real_escape_string($_POST['email'])."','$unique_code')");
डी) बस उस चर को प्रतिध्वनित करें जिसे आपने कोड दिया है जैसे:
echo $unique_code;