• 24-04-2009, 13:54:28
    #1
    Merhaba arkadaşlar,
    Veritabanından veri çekerek sitemap hazırlıyorum ;
    <?php   
    include("inc/includes.php");
    header("Content-type: text/xml");                                      
    $xml_ciktisi="<?xml version=\"1.0\" encoding=\"windows-1254\"?> <urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd\">\n";
    $ktag=mysql_query("select * from etiketler order by rand() LIMIT 0,30000");
    while($als=mysql_fetch_array($ktag)){
    $tek=$als['etiket'];
    $tlink = seo($tek); 
    $xml_ciktisi .= "         <url>
                              <loc>http://www.exceLLency.com/$tlink.html</loc>
                              </url>";
    };
    $xml_ciktisi .= "</urlset>";
    echo $xml_ciktisi ;
    ?>
    Veri genişliği çok büyük olduğu için her 30k veri için bir dosya daha oluşturup ona göre sorgulama yaptırmam gerekiyor.Şöyle bir şey yapılabilirmi;

    Ana sitemap dosyasının içeriğine uygun sorgular yazılarak "site.com/sitemap.php?=1" "site.com/sitemap.php?=2" şeklinde otomatik olarak sayfalama yaptırılabilirmi?

    Veritabanında 1 milyona yakın url var bu yüzden bu tarz bir uygulamaya ihtiyacım var...Şurda bununla ilgili bir makale okudum ama kendime uyarlayamadım..
  • 24-04-2009, 14:12:30
    #2
    Üyeliği durduruldu
    order by rand ile her seferinde farklı data alirsiniz ki. bir sonraki sayfaya aktaramazsiniz ondan. bu kodlarla mümkünsüz
  • 24-04-2009, 14:14:04
    #3
    Order by id olarak alsak ne gibi alternatif kod çözümleri olabilir hocam ?
    sdemirkeser adlı üyeden alıntı: mesajı görüntüle
    order by rand ile her seferinde farklı data alirsiniz ki. bir sonraki sayfaya aktaramazsiniz ondan. bu kodlarla mümkünsüz
  • 24-04-2009, 14:22:43
    #4
    Üyeliği durduruldu
    excellency adlı üyeden alıntı: mesajı görüntüle
    Order by id olarak alsak ne gibi alternatif kod çözümleri olabilir hocam ?
    doğru hatirliyorsam google 50 000 kayda izin veriyor her bir sitemapta

    Limitleyerek sitemap parçalara bölünebilir. birden fazla sitemap i google ekleyebilirsiniz yani webmaster araçlarından.

    ikinci alternatif olarakta şu başlık iş görebilir

    https://www.r10.net/php/340996-php-il...ap-xml-gz.html
  • 24-04-2009, 14:35:13
    #5
    Yok hocam ben anlatamadım galiba, zaten parça parça yapabiliriz onda sorun yok, benim istediğim tek dosyada işi bitirelim diğer alt sayfaları kendi otomatik oluştursun.
  • 24-04-2009, 14:37:48
    #6
    Üyeliği durduruldu
    anladım hocam. o zaman limit sql kısmını düzenlemeniz lazim
    $ktag=mysql_query("select * from etiketler order by id LIMIT ".($_GET["top"]*30000).",30000");
    gibi yaparsanız
    sonrada xml dosyalarını
    site.com/sitemap.php?=0
    site.com/sitemap.php?=1
    site.com/sitemap.php?=2
    gibi cagirabilirsiniz
  • 24-04-2009, 14:52:30
    #7
    Yok hocam halledemedim ben bu olayı.
  • 24-04-2009, 14:57:04
    #8
    Üyeliği durduruldu
    sadece verdigim satiri değiştirip cagiriken de adresten o şekilde cagiracaksiniz. neresinde takıldınız yada ne yaptiniz yada ne yapamadiniz
  • 24-04-2009, 14:58:42
    #9
    O şekilde url çağırdığım zaman aynı çıktıları veriyor.

    sdemirkeser adlı üyeden alıntı: mesajı görüntüle
    sadece verdigim satiri değiştirip cagiriken de adresten o şekilde cagiracaksiniz. neresinde takıldınız yada ne yaptiniz yada ne yapamadiniz