• 16-08-2013, 14:51:36
    #1
    Merhaba arkadaşlar veritabanımda permalink diye bir sutun var burayı otomatik olarak benzersiz bir değer atacağım ama var olan bir tane varsa onun sonuna 1,2,3 vs gibi otomatik olarak eklemek istiyorum. Örneğin worpdressteki gibi. Bunun mysql ile bir yöntemi varmı yoksa PHP ile bir kod mu oluşturmam lazım. PHP de basit olarak bir kod oluşturdum ama sadece sonuna 1 ekliyor aynı değerde birşey daha ekleyince yine 1 ekliyor. Yardımcı olursanız sevinirim.

    Örnek URL
    /sef-url-1
    /sef-url-2
    /sef-url-3
    /sef-url-4 vs

    İyi çalışmalar.
  • 16-08-2013, 14:55:01
    #2
    Üyeliği durduruldu
    Auto increment id
  • 16-08-2013, 16:16:38
    #3
    BTHN adlı üyeden alıntı: mesajı görüntüle
    Auto increment id
    Anlatamadım herhalde. ID zaten AI da benim demek istediğim kayıt esnasında aynı isimde bir permalink varsa otomatiktan sonuna kaçıncı olduğunu yazacak.

    Örneğin permalink-deneme diye bir kayıt girecek onun sonuna permalink-deneme-1 yazacak ama bir daha permalink-deneme girerse sonuna permalink-deneme-2 yazacak.
  • 16-08-2013, 16:46:53
    #4
    Üyeliği durduruldu
    TheWsN adlı üyeden alıntı: mesajı görüntüle
    Anlatamadım herhalde. ID zaten AI da benim demek istediğim kayıt esnasında aynı isimde bir permalink varsa otomatiktan sonuna kaçıncı olduğunu yazacak.

    Örneğin permalink-deneme diye bir kayıt girecek onun sonuna permalink-deneme-1 yazacak ama bir daha permalink-deneme girerse sonuna permalink-deneme-2 yazacak.
    Like ile kontrol edin sef yapısını oluşturmadan
  • 16-08-2013, 16:56:44
    #5
    BTHN adlı üyeden alıntı: mesajı görüntüle
    Like ile kontrol edin sef yapısını oluşturmadan
    O mantıkla yaptıgım zaman sadece 1 tane sorgu oluyor. Benim demek istedigim her defasında öncekini 1 artıracak. Mysql ile bir yöntem var mı diye soruyorum. Php ile kod yazmamak için.


    Sent from my iPhone using Tapatalk
  • 16-08-2013, 16:57:29
    #6
    Üyeliği durduruldu
    Mysql ile count yap like kullanarak

    GT-I9300 cihazımdan Tapatalk 4 ile gönderildi
  • 16-08-2013, 17:21:53
    #7
    <?
    function kontrol($link) {
       $sql = mysql_query("SELECT permalink FROM tabloadi WHERE permalink='".$link."'");
       if (mysql_num_rows($sql) == 0)
         return $link;
       else {
         $rand = rand(1, 100);
         $link = $link."-".$rand;
         return kontrol($link);
       }
    }
    
    $permalink = 'sef-url'; // örnek permalink
    $permalink = kontrol($permalink);
    ?>
    Deneme yapamadım hocam. Dener misiniz?
  • 16-08-2013, 21:53:30
    #8
    sewakldawk adlı üyeden alıntı: mesajı görüntüle
    <?
    function kontrol($link) {
       $sql = mysql_query("SELECT permalink FROM tabloadi WHERE permalink='".$link."'");
       if (mysql_num_rows($sql) == 0)
         return $link;
       else {
         $rand = rand(1, 100);
         $link = $link."-".$rand;
         return kontrol($link);
       }
    }
    
    $permalink = 'sef-url'; // örnek permalink
    $permalink = kontrol($permalink);
    ?>
    Deneme yapamadım hocam. Dener misiniz?
    Zaman ayırdığın için teşekkür ederim ama sonuna eklenecek olan rakam random olmayacak. Sıralı olacak ve PHP ile değil mySQL ile. AI gibi otomatik string değerleri de 1 artırrarak yazacak.
  • 17-08-2013, 02:14:28
    #9
    do while döngüsü kullanın, kelimenizin sonuna birden başlayarak rakamlar ekleyip sql sorgusu ile kontrol ettirin. Döngü sırasında bir tane counter kullanmayı da ihmal etmeyin. Dönen satır sayısı sıfır olana kadar döngü devam edecektir. while koşulu sağlandığında en büyük değeri eklemiş olursunuz.