• 04-07-2020, 00:20:31
    #1
    Merhabalar,

    Başlığa tam olarak ne yazmalıyım bilemedim. Olayın özeti şudur.
    Bir kategori tablosu mevcut, birde içerik tablosu. İçerik tablosunda kategoriyi explode ile birden fazla olacak şekilde insert ediyorum. Ekleme işlemi sonucunda bir veride birden fazla kategori mevcut ise 1.2.5.9 olarak kaydediyor yani. Buraya kadar herşey normal.

    Sorunum şudur. Kategori sayfasına gidildiğinde veriler tablosundan where ile kategori idsine göre veriler çektiriyorum fakat explode ile birden fazla kategori eklediğim veriler o kategori sayfasında listelenmiyor.

    Yardımlarınız için şimdiden teşekkür ederim.
  • 04-07-2020, 00:24:14
    #2
    yaptığınız mantık bir saçma geldi kategori ve veri bağlantısını ayrı bir tabloda tutup join ile birlikte çağırmalısınız daha az cpu tüketimi ve daha hızlı sorgu demek olur .
  • 04-07-2020, 00:32:48
    #3
    asanprogrammer adlı üyeden alıntı: mesajı görüntüle
    yaptığınız mantık bir saçma geldi kategori ve veri bağlantısını ayrı bir tabloda tutup join ile birlikte çağırmalısınız daha az cpu tüketimi ve daha hızlı sorgu demek olur .
    Sorunun cevabını biliyor musunuz? Ben sorumun cevabını aramaktayım, sistemi değiştirmek şuanki son tercihim.
    Teşekkürler.
  • 04-07-2020, 00:32:57
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Yazdığınızdan bir şey anlamadım ama o sistemin mantığı şu olması lazım. Aynı tablo içerisinde bir ana kategori (id) birde alt kategori (id) olması lazım döngü içerisinde ana kategorileri listelerken alt kategoriler için kontrol yapman lazım. 2 farklı tablo bilemedim yazdığınız şeyi anlayamadım.
  • 04-07-2020, 00:36:43
    #5
    Birdilimask adlı üyeden alıntı: mesajı görüntüle
    Sorunun cevabını biliyor musunuz? Ben sorumun cevabını aramaktayım, sistemi değiştirmek şuanki son tercihim.
    Teşekkürler.
    sorunun cevabını soruyu tam bilmediğim için bilmiyorum soruyu doğru ve açık sormak cevabını bulmayı o kadar hızlandırır
    anladığım kadarıyla in where array mantığından bahserdiyorsun
    bu linkten bakabilirsin mantığa
    kolay gelsin
  • 04-07-2020, 05:26:05
    #6
    dogrusu icerik kategori tablosu yapmak (bridge table)

    mevcut hatali yapida ise
    find_in_setkomutu ile cozebilirsiniz
  • 04-07-2020, 05:31:18
    #7
    Sistemi değiştirmekten başka çareniz yok. Bende aynı durumu yaşadım zamanında. Yapa yapa tecrübe oluyor
    Tablo yapınızı içerik, kategoriler, içeriğin kategorileri olarak 3 tabloda ayırmanız ve sorguları join ile ilişki kurarak yapmanız gerekiyor.
  • 04-07-2020, 11:41:45
    #8
    oracle veya mysql 8.0 kullanmıyorsanız sistemi değiştirmek şart
    3 tane tablo gerekli
    1 yazılar
    2 kategoriler
    3 yazıların bağlı olduğu kategoriler

    yazılar tablosun basitce id, başlık vs bilgileri kategori ile alakalı bir bilgi bulunmaz
    kategoriler tablosunda kategori id, kategori adi, üst katagori id vs bilgiler
    son tablomuz ise yazıların bağlı olduğu kategori tablosunda da yazının id si ve kategori id si saklanır

    şu anki yapınızda x kategorisinden yazıları listelemek için
    select * from yazilar where 1=1 and (id = '1' or id like'1,%' or id like '%,1,%' or id like '%,1'
    gibi bir query kullanmanız gerekiyor
  • 04-07-2020, 19:06:43
    #9
    Yaptığım yapı hatalı olarak lanse edilmemeli. Programlama da farklı farklı şekilde yollar izlenebiliyor. Bridge table olayı halihazırda bulunan projeye tekrar entegre edemeyeceğim için soruyu sormuştum.

    @suleymanyaldiz; teşekkür ederim. Aradığım kod parçacığı buydu.

    Sorunum çözülmüştür.