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. :)
@pcmemo
Hocam sıralı gitmesini istemememin sebebi, kullanıcıların o şekilde görmesini istememem sadece. Yani son siparişi oluşturan kişi kaç sipariş olduğunu aşağı yukarı tahmin edebilir oluyor o şekilde. Tamamen psikolojik yani sebebi. :)
@mehmet
regenerate
'i çalıştıramadım hocam zaten, ben beceremedim sanırım. :) uniqid()
fonksiyonunu daha önce araştırdım fakat gördüğüm kadarıyla 6 haneli bir sonuç elde edemiyoruz.
@shelby
Bu işlem için bir sınıf dahil etmek gerekir mi bilmiyorum ama sınıfı biraz inceledim hoşuma gitti, kenara attım teşekkür ederim. :)
Benim örnek olarak verdiğim kodu sonuç 0
verene kadar döndürecek bir döngü kuramaz mıyız, for
vb. ile? :)