Benzersiz ID Oluşturma ve Kontrol Etme
$code = "111111";
$codeControl = $db -> query("SELECT item_code FROM items WHERE item_code = '".$code."'") -> rowCount();
if ($codeControl != 0) {
$code = "222222";
}
Yukarıdaki işlemde $code
değişkeni rand()
vb. bir şekilde oluşturulmuş 6 haneli bir sayı. Bunu sipariş numarası olarak kabul edelim.
Veritabanına kaydetmeden önce $codeControl
ile kontrol ediyorum. Eğer sonuç 0'a eşit değil ise if
ile yeni bir $code
oluşturuyorum.
Bu şekilde çakışmayı engellediğimi düşünüyordum fakat ya ikinci oluşturduğumuz $code
'de çakışıyorsa?
if
içinde if
açarak tekrar kontrol ettirebiliriz, ancak oda çakışırsa diye sorun devam ediyor. :)
Döngü ile kontrol ettireyim dedim, bir türlü akıl erdiremedim. Yardımlarınızı bekliyorum. :)
@redline
hashids kütüphanesini kullanabilirsin.
https://github.com/vinkla/hashids
Örnek:
<?php
require_once('vendor/autoload.php');
use HashidsHashids;
$salt = 'site_salt_anahtari_degistir';
$length = 6;
$id = 1923;
$hashids = new Hashids($salt, $length);
/
Alternatif
Key için özel harflerde seçebiliriz, hepsi küçük harf olacaktır.
$hashids = new Hashids($salt, 6, 'abcdefghijklmnopqrstuvwxyz');
/
$hash = $hashids->encode($id);
echo $hash."<br/>"; //aWKZrQ
echo $hashids->decode($hash)[0]; //1923