• 27-03-2020, 17:09:04
    #1
    $sayi1 = rand(1000,9999);
        $sayi2 = rand(1000,9999);
        $sayi3 = rand(1000,9999);
        $sayi4 = rand(10,99);
        $sayi5 = date("s");
        $rasgelesayi = $sayi1.$sayi2."FIRMAISMIM".$sayi3.$sayi4.$sayi5;
    Böyle bir yapıya sahibim şuan. 1 yıldır falan kullanıyorum hiç daha benzer bir sipariş numarası üretmedi. Ama ileri ki zamanda aynı sipariş numalarını birden fazla insana vermesini istemiyorum sistemin.
    Bunu nasıl benzersiz bir kodhaline getirebilirim. Çok uzun hash tarzı şeyler istemiyorum. Hash vb. bir şey olmadan bunu nasıl geliştirebilirim sizce?
  • 27-03-2020, 17:09:50
    #2
    microtime();
  • 27-03-2020, 17:11:30
    #3
    olasıklar dahilinde vermesi imkansız gibi bir şey zaten hocam : hepsi tutsa date tutmaz sanki
  • 27-03-2020, 17:12:10
    #4
    mertkilic0111 adlı üyeden alıntı: mesajı görüntüle
    microtime();
    Bir sonraki gün aynı saat, saniyelerde alışveriş yapan birisi problem olmaz mı? Biliyorum çok düşük bir ihtimal ama sonuçları çok büyük problem.
  • 27-03-2020, 17:13:50
    #5
    emreires adlı üyeden alıntı: mesajı görüntüle
    Bir sonraki gün aynı saat, saniyelerde alışveriş yapan birisi problem olmaz mı? Biliyorum çok düşük bir ihtimal ama sonuçları çok büyük problem.
    $rand = rand(1111111,99999999);
    $mtime = microtime();


    $sipno = $rand.$mtime;

    Neredeyse imkansız. Hadi diyelim 2 kullanıcı aynı microtime da sipariş verdi o zaman bir de rand koyun
  • 27-03-2020, 17:14:44
    #6
    Misafir adlı üyeden alıntı: mesajı görüntüle
    olasıklar dahilinde vermesi imkansız gibi bir şey zaten hocam : hepsi tutsa date tutmaz sanki
    Bende öyle düşünüyorum hiç denk gelmemiş zaten 1 yıldır. Ama bir şüphe sardı içimi bir sorayım dedim
  • 27-03-2020, 17:15:14
    #7
    Benzersiz olarak değil de gerçekten sipariş no olarak yapsanız daha iyi olmaz mı? Sipariş 1 sipariş 2 olarak. Her siparişte sipariş noyu 1 arttırarak.
  • 27-03-2020, 17:16:02
    #8
    mertkilic0111 adlı üyeden alıntı: mesajı görüntüle
    $rand = rand(1111111,99999999);
    $mtime = microtime();


    $sipno = $rand.$mtime;

    Neredeyse imkansız. Hadi diyelim 2 kullanıcı aynı microtime da sipariş verdi o zaman bir de rand koyun
    Bu yapı aslında benim şuanda sahip olduğum yapıya benzer. Bu fikre göre aslında benimki de neredeyse imkansız olmuyor mu sizce? Değiştirmeme gerek var mı yani? Teşekkür ederim bu arada



    Bruuzy adlı üyeden alıntı: mesajı görüntüle
    Benzersiz olarak değil de gerçekten sipariş no olarak yapsanız daha iyi olmaz mı? Sipariş 1 sipariş 2 olarak. Her siparişte sipariş noyu 1 arttırarak.
    İlk başta yapıyı böyle kursaydım süper olurmuş aslında ama 5 binden fazla kayıt olduğu için şuan bu şekilde değiştirmek istemiyorum. Ama baya iyi fikir, keşke baştan yapsaydım dedim
  • 27-03-2020, 17:18:20
    #9
    emreires adlı üyeden alıntı: mesajı görüntüle
    Bu yapı aslında benim şuanda sahip olduğum yapıya benzer. Bu fikre göre aslında benimki de neredeyse imkansız olmuyor mu sizce? Değiştirmeme gerek var mı yani? Teşekkür ederim bu arada
    Yani evet, mevcut yapının hemen hemen neredeyse aynısını fakat böyle bir şeyin denk gelmesi imkansız + olarak mysql sütununu unique yapıp ya da sipariş kodu oluşturulmadan sorguyla varsa yeniletebilirsin.