سؤال

مرحبا أنا إنشاء نظام العمليات والمعرف و إيد ، إيد نحن توليد عشوائيا ولكن أنا عالقة قليلا ، ولست بحاجة دائما لتوليد إيد التي لا توجد حاليا في دب كما الحقل هو حقل فريد المستخدمة على الواجهة الأمامية حتى لا تعرض المعرف الحقيقي.

لذلك لتلخيص ، أحاول إنشاء معرف فريد غير موجود حاليا في ديسيبل الجزء الذي لم أكن قد حصلت على العمل هو عبر التحقق في ديسيبل لذلك في بعض الأحيان سوف تعطي عددا موجود بالفعل في ديسيبل على الرغم من أنه لا ينبغي أن شكرا مقدما.

هذا هو رمز بلدي حتى الآن:

function uniqueID($table) 
{
$db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);

$possible = '1234567890';
$code = '';
$characters = mt_rand(7,14);
$i = 0;

while($i < $characters) 
{ 

    $code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
    $i++;

}

$result = $db->query('
SELECT uniqueID
FROM '.$table.'
WHERE uniqueID = "'.$code.'"
LIMIT 1
');

$totalRows = $result->num_rows;

if(!$result)
{

    return $db->error;

}
else
{

    if($totalRows > 0)
    {

        return uniqueID($table);

    }
    else
    {

        return $code;

    }

}

}
هل كانت مفيدة؟

المحلول 6

أنا أحسب ما كانت المشكلة بالفعل، كما ذكرت للجميع، لم يكن جيل التعليمات البرمجية هي المشكلة!كانت القضية أن الشيك الصغير لا يعمل بشكل صحيح.لذلك كل ما قمت به تمت إزالة هذه الحلقة

giveacodicetagpre.

لأن هذا كان يسبب معرفي الفريد في نهاية المطاف.

نصائح أخرى

لتوليد UNIC UID، يمكنك استخدام الوقت، وأعتقد أنه كان جذور صغير جدا سيتم إضافة سجلات في نفس الثانية، مع اثنين من البيانات العشوائية.

اكتب بعض الوظائف التي تعيدها إليك مثل هذا

giveacodicetagpre.

في فب هناك وظيفة تسمى uniqid()

http://php.net/manual/en/function.uniqid.php

يمكنني التحدث عن إنشاء معرفات، مثل الآخرين، لكن هذا ليس سؤالك. استفسارك يبدو جيدا.إذا ترجع 0 صفوف، لكن يبدو أنك تجد التعليمات البرمجية في قاعدة البيانات، فما على الأرجح أنها تبدو هي نفسها فقط، ولكن في الواقع ليست كذلك.يمكن أن تكون مبطن بواسطة Whitespace.

طريقة واحدة لحل هذا هو من خلال تحديد الصف الأخير من قاعدة بيانات المستخدم الخاصة بك والحصول على البرنامج النصي للتحقق من حقل المعرف (يمكنك تحقيق ذلك عن طريق تنفيذ طلب محدد حسب المعرف في وضع التنظيم)، ثم يمكنك استخدام هذه المعلوماتللحصول على أرقام عشوائية أكبر من هذا المعرف.

تحرير

giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top