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. :)
Sonsuz döngü kur, eğer veritabanında yoksa code, döngüyü sonlandır. Şu yazdığım örneği inceleyebilirsin.
<?php
$r = range(0, 100, 2); // [0, 2, 4, 6, ..., 100] Çift Sayılar
$code = null;
// Kodumuzun tek bir sayı olmasını istiyoruz.
while(1) { // Sonsuz döngü
$code = rand(0, 100); // Rastgele Sayı
if(!in_array($code, $r)) { // Eğer $code $r arrayinin içerisinde yoksa döngüyü bitir.
break;
}
else { // Eğer $code $r arrayinin içerisindeyse döngüye devam.
echo $code." bu kod çift olduğu için döngüye devam. <br/>";
}
}
echo "Kodunuz hazır: ".$code;