• 13-09-2013, 10:16:25
    #1
    Önceleri hep düzmantık gittiğim için ne gerek var diyerek öğrenmemiştim JOIN kavramını. Şimdi yapmam gereken projede biraz da performansı düşünmem gerektiği için en iyi şekilde kodlamam gerekiyor. JOIN kavramına biraz internetten baktım ama kafam karıştı.

    forumcats tablo yapısı
    id
    catname
    catdesc

    forums tablo yapısı

    id
    forumname
    forumdesc
    topiccount
    postcount
    type
    mods
    lastpost
    parent
    catid

    Yapmaya çalıştığım şey forum kategori başlıklarını listeleyip altına bu kategorilere ait forumları göstermek. yani

    Genel
    - Duyurular
    - Tartışmalar
    Destek
    - PHP
    - ASP

    Şeklinde bir diziliş elde etmeye çalışıyorum. Benim yaptığım sorgu şekli şöyle,

    $template->assign('categories', $db->get_results("SELECT mu_forumcat.id, mu_forums.forumname, mu_forums.forumdesc, mu_forums.topiccount, mu_forums.postcount, mu_forums.lastpost, mu_forums.parent  FROM mu_forumcat RIGHT JOIN mu_forums ON mu_forums.catid = mu_forumcat.id"));
    Nerede hata yapıyorum? Bir de şunu elde etmek için şunu yazmalısın ki istediğin sonucu alabilesin şeklinde bir açıklama yapabilir misiniz? JOIN ile ilgili hangi makaleye baksam kafam allak bullak oluyor.

    Şimdiden teşekkürler.
  • 13-09-2013, 10:51:07
    #2
    Üyeliği durduruldu
    loc adlı üyeden alıntı: mesajı görüntüle
    Önceleri hep düzmantık gittiğim için ne gerek var diyerek öğrenmemiştim JOIN kavramını. Şimdi yapmam gereken projede biraz da performansı düşünmem gerektiği için en iyi şekilde kodlamam gerekiyor. JOIN kavramına biraz internetten baktım ama kafam karıştı.

    forumcats tablo yapısı
    id
    catname
    catdesc

    forums tablo yapısı

    id
    forumname
    forumdesc
    topiccount
    postcount
    type
    mods
    lastpost
    parent
    catid

    Yapmaya çalıştığım şey forum kategori başlıklarını listeleyip altına bu kategorilere ait forumları göstermek. yani

    Genel
    - Duyurular
    - Tartışmalar
    Destek
    - PHP
    - ASP

    Şeklinde bir diziliş elde etmeye çalışıyorum. Benim yaptığım sorgu şekli şöyle,

    $template->assign('categories', $db->get_results("SELECT mu_forumcat.id, mu_forums.forumname, mu_forums.forumdesc, mu_forums.topiccount, mu_forums.postcount, mu_forums.lastpost, mu_forums.parent  FROM mu_forumcat RIGHT JOIN mu_forums ON mu_forums.catid = mu_forumcat.id"));
    Nerede hata yapıyorum? Bir de şunu elde etmek için şunu yazmalısın ki istediğin sonucu alabilesin şeklinde bir açıklama yapabilir misiniz? JOIN ile ilgili hangi makaleye baksam kafam allak bullak oluyor.

    Şimdiden teşekkürler.
    SELECT (alacağımız veriler) FROM forumcats INNER JOIN forums ON forumcats.id=forums.id

    bu şekilde kategoriye ait bütün form elemanlarını yazdırabilirsin.
  • 13-09-2013, 11:08:52
    #3
    Quismo adlı üyeden alıntı: mesajı görüntüle
    SELECT (alacağımız veriler) FROM forumcats INNER JOIN forums ON forumcats.id=forums.id

    bu şekilde kategoriye ait bütün form elemanlarını yazdırabilirsin.
    SELECT * FROM mu_forums INNER JOIN mu_forumcats ON mu_forumcats.id = mu_forums.catid"

    Bu şekilde bir düzenleme yaptığımda forumları listeleyebiliyorum. Kategorileri listelemek için ne yapmam gerekiyor peki? Bu forumları kategorilerin altına yerleştirmem gerek sonuçta.
  • 13-09-2013, 11:22:34
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Sorguya order by catid desc ekleyin boylelikle veriler kategori id degerine gore listelenecektir sizde php tarafinda forumlari listelerken arada kategori adini da yazdirirsiniz ve kategori adini bir degiskene atarsiniz döngü icerisinde kategori adi degisirse kategori adini yazdirirsiniz.
    Forum ve forum kategori yerine bu isi tek tablo ile cozebilirsiniz nested data modeli ile.