• 21-12-2018, 14:08:32
    #1
    Çekiliş düzenlediğim için basit bir kayıt ol - listele sistemi kurdum.

    Her katılımcıya bir ID veriliyor ve çekilişi bu numaralar arasında yapıcam.

    Sorun şu: Hatalı katılımı veri tabanından sildikten sonra ID boşluğu oluşuyor.

    Örnek:

    1- Ahmet
    2- Mehmet
    3- Ayşe
    4- Gizem
    5- Nur

    Mehmet'i sildiğimde ID'ler şöyle oluyor haliyle:

    1- Ahmet
    3- Ayşe
    4- Gizem
    5- Nur

    Yani 2 yok oluyor ve 3, 2 olarak değişmiyor. Çekiliş sırasında da bana 1-2-3-4-5 diye giden bir sıra lazım.

    Yani birini sildiğimde o ID boşluğunu nasıl kapatabilirim?

    Şimdiden teşekkürler.
  • 21-12-2018, 14:09:56
    #2
    Gold üye
    Veritabanından çekmeyin ID bölümlerini, manuel girin sorun düzelecektir.

    $ar=array("Ahmet","Test","Mehmet");
    
    $zero=0;
    foreach ($ar as $arrr) {
    
    echo $zero++;
    }
    örnektir.

    Düzenleme
    $ar=array("Ahmet","Test","Mehmet"); 
    
        $zero=1; 
        foreach ($ar as $arrr) { 
    
          echo  $zero++ . " " . $arrr . "</br>"; 
        }


    Çıktı

    1 Ahmet
    2 Test
    3 Mehmet
  • 21-12-2018, 14:21:52
    #3
    ALTER TABLE tablename AUTO_INCREMENT = 1
  • 21-12-2018, 14:22:07
    #4
    instads adlı üyeden alıntı: mesajı görüntüle
    Veritabanından çekmeyin ID bölümlerini, manuel girin sorun düzelecektir.

    $ar=array("Ahmet","Test","Mehmet");
    
    $zero=0;
    foreach ($ar as $arrr) {
    
    echo $zero++;
    }
    örnektir.

    Düzenleme
    $ar=array("Ahmet","Test","Mehmet"); 
    
        $zero=1; 
        foreach ($ar as $arrr) { 
    
          echo  $zero++ . " " . $arrr . "</br>"; 
        }


    Çıktı

    1 Ahmet
    2 Test
    3 Mehmet
    Deniyorum hocam teşekkür ederim.
  • 21-12-2018, 14:48:18
    #5
    Üyeliği durduruldu
    hatalı kayıtları silmek yerine veritabanında bir alan daha tanımlayın. hatalı olanları işaretleyin durum = 'hatali' diye
    sonra verileri çekerken where durum = 'hatasiz' olarak çekebilirsiniz.

    anlatımım örnektir.
  • 21-12-2018, 15:08:04
    #6
    durum diye bir kolon açıp aktif pasif olarak güncelleyin kayıt silmeyin hocam bu yöntem en doğru sonucu verecektir.
  • 21-12-2018, 15:15:18
    #7
    cekilişte cıkan sayıyı id ye gore degilde dbden cekme sırasına göre $query[$cekilensayi] olarak yapabilirsiniz.
    aktif-pasif ya da silindi olarak ta yapsanız sonucları cektiginizde yine silindi olarak işaretlenen degerler gelmeyecek, idler eksik olacak.
    id değeri sqlde autoincrement tanımlıdır. silinenin yeri dolmaz, kayma olmaz. Siz yazılım mantığınızı değiştirmelisiniz.
  • 21-12-2018, 15:23:11
    #8
    evet id ye göre çekmek yanlış bir sonuç doğurur veya herhangi bir kaydı sildiğinde tüm diğer sonuçları düzenleyebilirsin fakat bu veri tabanını yoracaktır.