folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder Veritabanı Tablo İçinde İlişki



Veritabanı Tablo İçinde İlişki

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Mürit ve mürideler ,

    Şöyle bir sorum olacak.

    Şuan yapmaya calıstığım bir tablo ve kurmam gereken bir mantık var. Fakat hata yapmak istemiyorum . Sorunu kendi projem üzerinden değil farklı bir olayı sunuyorum sizlere.

    Soruna gelecek olursak sorun şu şekilde. 

    Örneğin OkunacakKitapTablosu var.

    OkunacakKitapID KitapID | KullaniciID | BaglantiliOkunacakKitapID diye alanlarım var 3 adet.

    KitaplarTablosu var 

    KitapID | KitapAdi diye 2 adet alanlarım var.

    Olay şu şekilde gerçekleşiyor.

    1 Kullanıcı seçelim adı MhmdAlmz olsun ve KullanıcıID 1453 olsun.

    4 adet de kitabımız var ;

    Kitap Adi : Paradox / ID :5

    Kitap Adi : Züleyha / ID : 10

    Kitap Adi : Adini Sen Koy / ID : 9

    Kitap Adi : Zambak / ID : 55

    Ben evvelden 3 kitap almıştım fakat.. Bunların okuma sıraları mevcut. Mesela ben dedim ki Paradox okuyacağım Paradox bitince Züleyhayı O bitince Zambağı okuyacağım (Kullanıcıyım ben)

    Programcı olarak da gittim Veritabanına şu şekilde verileri işledim.

    OkunacakKitapID :1 / KitapID : 5 / KullaniciID :1453 / BaglantiliOkunacakKitapID : NULL 
    OkunacakKitapID :2 / KitapID : 10 / KullaniciID :1453 / BaglantiliOkunacakKitapID : 1 
    OkunacakKitapID :3 / KitapID : 55 / KullaniciID :1453 / BaglantiliOkunacakKitapID : 2 



    Ve kullanıcıya şu şekilde kitaplarını sunmak istiyorum şu şekilde bir kod ile;

    $QueryOkunacakKitaplariGetir=$db->prepare("Select KitapID from OkunacakKitapTablosu where KullaniciID=:ID");
        $QueryOkunacakKitaplariGetir->bindParam(":ID",$ID,PDO::PARAM_INT);
        $QueryOkunacakKitaplariGetir->execute();
        if($QueryOkunacakKitaplariGetir->rowCount())
        {
            $SonucTablo=array();
            foreach($QueryOkunacakKitaplariGetir as $Row)
            {
                $SonucTablo[]=$Row;
            }
            print_r(json_encode($SonucTablo));
        }else{
            echo "Okunacak Kitap Listesi Bulunamadı";
        }

    Burdan bana tablo geldi. Daha sonra X Okuması Y Okuması ile ilişkili olduğundan ben bunu CSS ile veya X Bir mantık ile Kitapları ok ile yan yana getireceğim..

    Şimdi 3 Kitap döndü ya. 3 Button koyduğumu düşünün bunların ID leri mevcut içerisinde datayı gömüyorum ben buttonlara . Son kullanıcıya şu şekilde bir yapı sunuyorum.

    Son kullanıcının okuması gerektiği kitaplar bu şekilde gözükmüş oluyor.

     

    Not : Yapmak istediğim yapı buna benzer. Ben bunu yaparsam . Ilerde bana sorun yaratır mı ? Yada bu mantığa alternatif olarak bak şunu yaparsan daha iyi olur gibi bir mantık sunarsanız çok sevinirim.

    Atış serbest belki de yılın en büyük saçmalığını yapıyorum ama aklıma başka bir mantık gelmedi...

    Benim için önemli bir durum bu teşekkürler. 

     

     


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nick6
    0x656e
    0x656e's avatar
    Kayıt Tarihi: 19/Mayıs/2012
    Homo

    Konuyla alakasız dbpatterns kullan

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek
    0x656e bunu yazdı

    Konuyla alakasız dbpatterns kullan

    teşekkürler bilmiyodum bunu ilk defa duyuyorum bidahakine buraya yaparım vtyi


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Hocam BaglantiliOkunacakKitapID her zaman bir önceki okunan kitabı mı temsil ediyor her zaman ?  column adını okuyunca bir sonra okunacak aynı konudaki bir kitaptan bahsediyorsun gibi geldi. 


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Yok hocam öyle olsa AUTO_INCREMENT'leri takip ederdim. fakat burda olay farklı 

    Okuma sıraları bir öncekine göre değişiyor.

    Yani ben bunların arasına Sırasız okuma da ekleyebilirim. BaglantiliOkunacakKitapID eğer null ise okuması gereken herhangi bir kitap yok gibi düşünülebilir. fakat null değilse demekki bağlantı var ve hangi Kitapta ise öncelik onu buluyorum burdan ID ile de .


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Gece upu olsun 


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    yukarı yukarı


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    myblackworldweb
    myblackworldweb's avatar
    Kayıt Tarihi: 10/Mart/2008
    Erkek

    e abi bir de durum kolonu ekle bunların yanına.

    eğer durumu 1 ise okunmuş olsun

    0 ise okunmamış olsun.

    eğer bağlantılı kitap idlerine göre listeletiyorsan, durumu 0 olanları çekersin. 

    Diyelim 2 nolu kitap okunmuş. Sen bu 2 nolu kitabı listeletmezsin ve sadece bağlantılı kitap idsini alırsın.

    ve 2 id li kitap okunmuş olup (durumu 1) bağlantılı kitap idsi 1 ise sen 2 nin bağlantılı kitabını çağırırsın

    okunma sırası 3 nolu kitap -1 nolu kitap olarak listeletirsin.

    Kitap 1 Okunmamış 

    Kitap 2 Okunmuş (Bağlantılı Kitap : 1)

    Kitap 3 Okunmamış ( Bağlantılı kitap : 2) 

     

     

    myblackworldweb tarafından 14/Haz/17 19:04 tarihinde düzenlenmiştir

    ¯\(ツ)/¯ ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek
    myblackworldweb bunu yazdı

    e abi bir de durum kolonu ekle bunların yanına.

    eğer durumu 1 ise okunmuş olsun

    0 ise okunmamış olsun.

    eğer bağlantılı kitap idlerine göre listeletiyorsan, durumu 0 olanları çekersin. 

    Diyelim 2 nolu kitap okunmuş. Sen bu 2 nolu kitabı listeletmezsin ve sadece bağlantılı kitap idsini alırsın.

    ve 2 id li kitap okunmuş olup (durumu 1) bağlantılı kitap idsi 1 ise sen 2 nin bağlantılı kitabını çağırırsın

    okunma sırası 3 nolu kitap -1 nolu kitap olarak listeletirsin.

    Kitap 1 Okunmamış 

    Kitap 2 Okunmuş (Bağlantılı Kitap : 1)

    Kitap 3 Okunmamış ( Bağlantılı kitap : 2) 

     

     

     

    Hocam bu gibi sorunları zaten halledecek bir yapı var elimde ben sadece bu okuma sralarını aynı tabloda tutmamın bir sakıncası olup olmadığını merak ediyorum


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    asiminnesli
    asiminnesli's avatar
    Kayıt Tarihi: 19/Mart/2010
    Erkek

    işin üstadları gelip yeşillendirecektir illaki ama ben kendi nacizhane fikrimi söyleyeyim veri tabanlarını sutunlardan çok satırlar yorar yani istediğin kadar sutun koy sıkıntı çıkmaz temel olarak.

    ben nasıl yapardım 

    öncelikle kitap ıd yi yan yana ";" ile yarırır yazardım hem sıra hem kitaplar belirtilmiş olur daha az sutunla sorun çözülmüş olurdu 


    I am Jack's inflamed sense of rejection
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek
    asiminnesli bunu yazdı

    işin üstadları gelip yeşillendirecektir illaki ama ben kendi nacizhane fikrimi söyleyeyim veri tabanlarını sutunlardan çok satırlar yorar yani istediğin kadar sutun koy sıkıntı çıkmaz temel olarak.

    ben nasıl yapardım 

    öncelikle kitap ıd yi yan yana ";" ile yarırır yazardım hem sıra hem kitaplar belirtilmiş olur daha az sutunla sorun çözülmüş olurdu 

    Sorgu yazılması zor olur hocam bunun için :)


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
Toplam Hit: 3979 Toplam Mesaj: 14
veritabanı