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. :)
Sormadan edemeyeceğim. NEden sipariş noyu sen vermeye çalışıyorsun, random yaptığına göre 6 basamaklı olmsının dışında özel bir amacı da yok.
SQL tablonda siparis_id (sana göre $code) kısmını PRIMARY ve AUTOINCREMENT yaparsan zaten her sipariş kaydında kendini tekrarlamayan kodu kendi verip kaydedektir.
Ddersen ki 6 haneli olsun diye yaptım. Zaten bahsettiğim işlemi 100000 den başla dersen ilk sipariş bile 6 basamaklı olacaktır. ikinci kayıt 100001 diye devam edecek.