• 26-08-2020, 00:31:33
    #1
    Merhabalar,
    bir sitede içerik eklerken keywords olarak girdiğim kelimeleri içeriği listelerken etiket olarak da çekiyorum.
    Ayrıca bu keyw leri sitemap.xml içerisinde de listeletiyorum ancak şöyle bir sorun oluşuyor.
    Farklı içeriklere girdiğim benzer keyw haliyle birden fazla defa listeleniyor.
    Kullandığım sorguyu her etiketi bir defa listeleyecek şekilde nasıl düzenlemem gerekir.
    Sorgu şu şekilde

    $tagsor=$db->prepare("SELECT * FROM yazilar where yazi_durum=:yazi_onay ORDER BY yazi_id DESC");
    $tagsor->execute(array(
    'yazi_onay' => 1
    ));
        while($tagcek=$tagsor->fetch(PDO::FETCH_ASSOC)){
    foreach(explode(",",$tagcek['tarif_keyw']) as $e){
        $t = trim(permalink($e),"-");
        echo '<url>
         <loc>'.$ayarlar['ayar_siteadi'].'etiket/'.$t.'</loc>
         <lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod>
         <changefreq>daily</changefreq>
         <priority>0.5000</priority>
        </url>';
    }
    }
  • 26-08-2020, 03:51:15
    #2
    Ankon adlı üyeden alıntı: mesajı görüntüle
    Merhabalar,
    bir sitede içerik eklerken keywords olarak girdiğim kelimeleri içeriği listelerken etiket olarak da çekiyorum.
    Ayrıca bu keyw leri sitemap.xml içerisinde de listeletiyorum ancak şöyle bir sorun oluşuyor.
    Farklı içeriklere girdiğim benzer keyw haliyle birden fazla defa listeleniyor.
    Kullandığım sorguyu her etiketi bir defa listeleyecek şekilde nasıl düzenlemem gerekir.
    Sorgu şu şekilde

    $tagsor=$db->prepare("SELECT * FROM yazilar where yazi_durum=:yazi_onay ORDER BY yazi_id DESC");
    $tagsor->execute(array(
    'yazi_onay' => 1
    ));
    while($tagcek=$tagsor->fetch(PDO::FETCH_ASSOC)){
    foreach(explode(",",$tagcek['tarif_keyw']) as $e){
    $t = trim(permalink($e),"-");
    echo '<url>
    <loc>'.$ayarlar['ayar_siteadi'].'etiket/'.$t.'</loc>
    <lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5000</priority>
    </url>';
    }
    }

    En iyi şekli ile aşağıdaki gibi kullanabilirsin ve işine sadece tarif_keyw lazımsa sadece onu çek * tümünü çeker SQL i yorarsın.
    Kolay Gelsin.

        $tagsor=$db->prepare("SELECT tarif_keyw FROM yazilar where yazi_durum=:yazi_onay ORDER BY yazi_id DESC");
        $tagsor->execute(array(
        'yazi_onay' => 1
        ));
    
        $url_array = [];
    while($tagcek=$tagsor->fetch(PDO::FETCH_ASSOC)){
            foreach(explode(",",$tagcek['tarif_keyw']) as $e){
             $t = trim(permalink($e),"-");
                $url_array[$t] = $e;
            }
        }
        foreach($url_array as $term=>$text){
            echo '<url>
         <loc>'.$ayarlar['ayar_siteadi'].'etiket/'.$term.'</loc>
         <lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod>
         <changefreq>daily</changefreq>
         <priority>0.5000</priority>
         </url>';
        }
  • 26-08-2020, 15:35:53
    #3
    CoLLeR adlı üyeden alıntı: mesajı görüntüle
    En iyi şekli ile aşağıdaki gibi kullanabilirsin ve işine sadece tarif_keyw lazımsa sadece onu çek * tümünü çeker SQL i yorarsın.
    Kolay Gelsin.

        $tagsor=$db->prepare("SELECT tarif_keyw FROM yazilar where yazi_durum=:yazi_onay ORDER BY yazi_id DESC");
        $tagsor->execute(array(
        'yazi_onay' => 1
        ));
    
        $url_array = [];
    while($tagcek=$tagsor->fetch(PDO::FETCH_ASSOC)){
            foreach(explode(",",$tagcek['tarif_keyw']) as $e){
             $t = trim(permalink($e),"-");
                $url_array[$t] = $e;
            }
        }
        foreach($url_array as $term=>$text){
            echo '<url>
         <loc>'.$ayarlar['ayar_siteadi'].'etiket/'.$term.'</loc>
         <lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod>
         <changefreq>daily</changefreq>
         <priority>0.5000</priority>
         </url>';
        }
    Teşekkürler hocam.