• 29-06-2013, 04:28:27
    #1
    Üyeliği durduruldu
    öncelikle merhaba,
    Benim veri tabanında bir sorunum var
    şöyle ki tabloya yeni bir veri eklediğimde sorun yok id'ler 1 2 3 ... şeklinde sıralanıyor sorun şuki ben id 2'yi sildiğim zaman işler karışıyor işlemlimi toplam satır şeklinde yapıyorum.

    örnek
    id / isim
    1 a
    2 b
    3 c
    4 d
    5 e
    6 f
    for ile ben 5. kayıta işlem yaptıracağım fakat 2 yi sildiğim için 5. kayıt 6. kayıta denk geliyor.

    Çözüm arayışım ise kod ile id'ler her seferinde 1-2-3-4-5-6 diye yeniden sıralanmalı
    bunu ne şekilde yapabilirim veri tabanını web programlama üzerinde kullanmıyorum php kod olarak vermezseniz çok sevinirim yardımcı olan herkeze şimdiden teşekkürler.
  • 29-06-2013, 12:35:18
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Row number vererek istediğini yapabilirsin. Kayıt silsen bile veriyi çektiğinde rownumber yine 1-2-3 artan şeklinde gelecek. Id'leri yeniden sıralatmak pek sağlıklı bir yöntem değil. Sonuçta ilişkisel olanları da yeniden düzenlemek zorunda kalırsın.

    rownumber - id - isim
    1 1 a
    2 3 c
    3 6 f
    4 7 g

    SET @sirano=0;
    SELECT @sirano:=@sirano+1 AS sira, id, isim
    FROM tablo_adi
    ORDER BY @sirano ASC
  • 29-06-2013, 15:55:50
    #3
    Üyeliği durduruldu
    rob33n adlı üyeden alıntı: mesajı görüntüle
    Row number vererek istediğini yapabilirsin. Kayıt silsen bile veriyi çektiğinde rownumber yine 1-2-3 artan şeklinde gelecek. Id'leri yeniden sıralatmak pek sağlıklı bir yöntem değil. Sonuçta ilişkisel olanları da yeniden düzenlemek zorunda kalırsın.

    rownumber - id - isim
    1 1 a
    2 3 c
    3 6 f
    4 7 g

    SET @sirano=0;
    SELECT @sirano:=@sirano+1 AS sira, id, isim
    FROM tablo_adi
    ORDER BY @sirano ASC
    Teşekkürler fakat bir kaç karışıklık var kullandığım kodlama dili php değil pawn adından bir kodlama stili C tarzı bir kodlamaya sahip.

    yani şu şekilde bir veriye müdahale edeiyoruz.
    new query[250];
    format(query,sizeof(query),"DELETE FROM `tablo` WHERE `Sutun` = '%d'", integerdeğer);
    mysql_query(query);

    şeklinde fonksiyonu çalıştırıyorum.

    Sizin verdiğiniz kodu nasıl aktif edebileceğimi çözemedim bu yüzden.
    new sirano = 0 ;
    Koyuyorum gerisini yapamadım biraz karışık oldu ama.yardımcı olabilirseniz.
  • 30-06-2013, 03:22:47
    #4
    Verdiğim kod sql kodu. Verileri çektiğin yerdeki kodun nasıl?