PDA

View Full Version : اعداد رندوم در Auto Increment



amirepsilon
دوشنبه 04 آبان 1388, 21:57 عصر
سلام
دوستان من میخوام اعداد رندوم در Auto Increment نمایش داده بشن
به جای این که از یک شروع کنه بره بالا اعداد تصادفی نشون بده
یا حتی تلفیقی باشه از عدد یا حروف
مثلا برای یک خبر به جای این :

کد PHP:

news.php?id=55


این باشه

کد PHP:

news.php?id=sdf5646


ممنون میشم راهنمایی کنید
یا علی

امیـرحسین
دوشنبه 04 آبان 1388, 23:30 عصر
اینکه دیگه Auto increment نمیشه. می تونید دستی این کار رو بکنید یعنی اعداد رندوم درست کنید که unique هم باشند....
ولی فکر نکنم MySQL همچین کاری بکنه. رشته رندم رو میسازه ولی اینکه تکراری نباشه رو شک دارم. البته با ورودی های خاص مثل زمان میشه یه کارایی کرد.

ImanGh
سه شنبه 05 آبان 1388, 00:48 صبح
شما می تونید از توابع انکود بازگشت پذیر استفاده کنید و ID را encode کنید و در url قرار دهید و در صفحه بعد از decode کردن از مقدار استفاده کنید.

amirepsilon
چهارشنبه 06 آبان 1388, 21:59 عصر
ممنون

اعداد رندوم درست کنید که unique هم باشند

این رو میشه توضیح بدی ؟

و اس.کیو.ال چطور رشته رندوم میسازه ؟

miladanimator
چهارشنبه 06 آبان 1388, 23:05 عصر
ممنون

اعداد رندوم درست کنید که unique هم باشند

این رو میشه توضیح بدی ؟

و اس.کیو.ال چطور رشته رندوم میسازه ؟

باید در php از ترکیب اعداد و حروف یک رشته تصادفی ایجاد کنی .

و چک کنی اگر در دیتابیس موجود نبود (تکراری نبود) در دیتابیس ثبت شود و اگر تکراری بود ، یک رشته تصادفی دیگه ایحاد بشه ...

با استفاده از این تابع می تونید از ترکیب اعداد و حروف رشته با تعداد کاراکتر مورد نظر ایجاد کنید :


function createPassword($length) {
$chars = "1234567890abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNO PQRSTUVWXYZ";
$i = 0;
$password = "";
while ($i <= $length-1) {
$password .= $chars{mt_rand(0,strlen($chars))};
$i++;
}
return $password;
}


به عنوان مثال برای تولید یک رشته 12 رقمی : createPassword(12)

امیـرحسین
پنج شنبه 07 آبان 1388, 22:26 عصر
می تونید مثلا از timestamp یه رشته بسازید و مثلا با MD5 یا توابع مشابه کد کنید. این نمونه هم یونیک هست و هم ترتیب نداره....

amirepsilon
سه شنبه 12 آبان 1388, 17:12 عصر
ممنون
ولی اگر همچین کاری کردیم و اونوقت نتیجه تابع زیر چی میشه ؟


mysql_insert_id();

tanha2007
سه شنبه 12 آبان 1388, 20:34 عصر
ممنون
ولی اگر همچین کاری کردیم و اونوقت نتیجه تابع زیر چی میشه ؟


mysql_insert_id();

خوب این تابع تابع آیدی ایجاد شده ای یک auto-increment را بر میگرداند ولی با روشی که دوستان فرمودن دیگر نیازی به ستون auto-increment نیست.