• 09-02-2025, 12:46:54
    #1
    Merhaba iyi günler,

    domain.com/markadi
    domain.com/kategoriadi
    domain.com/sayfaadi

    bu şekilde olan sistemde bu sayfaların açılacağı sayfada 3 farklı sorgu çekmeden direk nasıl istediğim veriyi veritabanından getirebilirim?

    marka/markadi
    kategori/kategoriadi
    bu tarz bi yapı kullanmak istemiyorum.
  • 09-02-2025, 13:19:38
    #2
    benzer alanlar olması kaydıyla şu sorguyla çözebilirsin:
    if ($searchQuery) {
            $content = $db->rawQueryOne("
                SELECT *
                FROM (
                    SELECT 'articles' AS source_table, id, slug, picture, title, content, description, createdDateTime, modifiedDateTime 
                    FROM articles 
                    WHERE title LIKE ? OR description LIKE ? OR content LIKE ?
                    UNION ALL
                    SELECT 'pages' AS source_table, id, slug, picture, title, content, description, createdDateTime, modifiedDateTime 
                    FROM pages 
                    WHERE title LIKE ? OR description LIKE ? OR content LIKE ?
                    UNION ALL
                    SELECT 'portfolios' AS source_table, id, slug, picture, title, content, description, createdDateTime, modifiedDateTime 
                    FROM portfolios 
                    WHERE title LIKE ? OR description LIKE ? OR content LIKE ?
                ) AS combined_tables
                WHERE slug = ?", 
                [
                    "%$searchQuery%", "%$searchQuery%", "%$searchQuery%",
                    "%$searchQuery%", "%$searchQuery%", "%$searchQuery%",
                    "%$searchQuery%", "%$searchQuery%", "%$searchQuery%",
                    $urlAddress[0]
                ]
            );
            
        } else {
            $content = $db->rawQueryOne("
                SELECT *
                FROM (
                    SELECT 'articles' AS source_table, id, slug, picture, title, content, description, createdDateTime, modifiedDateTime FROM articles
                    UNION ALL
                    SELECT 'pages' AS source_table, id, slug, picture, title, content, description, createdDateTime, modifiedDateTime FROM pages
                    UNION ALL
                    SELECT 'portfolios' AS source_table, id, slug, picture, title, content, description, createdDateTime, modifiedDateTime FROM portfolios
                ) AS combined_tables
                WHERE slug = ?", 
                [$urlAddress[0]]
            );
        }
  • 10-02-2025, 12:47:35
    #3
    Tek bir tabloda permalinkleri tutan bir yapı kullanabilirsiniz.
    Permalink tablosunda kayit_tur article için 1, pages için 2, portfolios için 3 ile kayıt yaparsınız. Ayrıca ilgili kaydın id kısmınıda permalinkte content_id alanına ekleyerek eşleştirme yapabilirsiniz.