• 13-03-2010, 00:52:23
    #1
    $result = @mysql_query("SELECT link, id FROM jos_menu WHERE published='1' ORDER BY id DESC");
        while (list($link, $id) = @mysql_fetch_row($result))
        {
    	$xml_ciktisi .= "\n
    	<url>\n<loc>http://www.siteadi.com/$link</loc>\n
    	<changefreq>monthly</changefreq>\n
    	<priority>0.50</priority>\n</url>";
        };
        echo $xml_ciktisi ."\n</urlset>";
    Yukarıdaki kodlar sitemap.php 'den alıntıdır.
    Maalesef sadece bir kategoriyi yazdırarak hata veriyor.
    While satırındaki değişkenlerin sırası ile oynayınca birşeyler düzeliyor, ama bu sefer de bütün kategorilerin linkini yanlış yazıyor. Şu haliyle hiç hata vermemesi lazım, ama hata veriyor. XML ayıracı yanlış kullanılmış diyor, oysa bence tamamen PHP ile alakalı. Başka sitede çalışıyor, burada sadece veri tabanı etiketleri farklı.
  • 13-03-2010, 01:23:39
    #2
    $id kullanmıcaksan çıktında sorguda neden çekiyorsun ?
  • 13-03-2010, 01:30:23
    #3
     $result = @mysql_query("SELECT id, link FROM jos_menu WHERE published='1' ORDER BY id DESC");
        while (list(id, $link) = @mysql_fetch_row($result))
        {
    	$xml_ciktisi .= "\n
    	<url>\n<loc>http://www.siteadi.com/$link&Itemid=$id</loc>\n
    	<changefreq>monthly</changefreq>\n
    	<priority>0.60</priority>\n</url>";
        };
        echo $xml_ciktisi ."\n</urlset>";
    Son düzenlemelere göre linkin bu şekilde olması gerektiğini öğrendim, ama hâlâ aynı hatayı alıyorum.
  • 13-03-2010, 01:38:50
    #4
    hata bastırma işaretlerimi kaldırıp (@) aldığın hatayı kopyalar mısın
  • 13-03-2010, 01:44:02
    #5
    Evet yaptım,
    Sadece şu hatayı veriyor:

    XML Ayırma hatası: iyi düzenlenmemiş
    Yer:: http://www.siteadi.com/categories.php
    Satır No 12, Sütun 70:
  • 13-03-2010, 02:22:17
    #6
    Üyeliği durduruldu
     while (list(id, $link) = @mysql_fetch_row($result))
    list(id, $link)
    id değilde $id olması gerekmiyor mu?
  • 13-03-2010, 14:33:22
    #7
    Orayı farkedip düzeltmiştim, ama aynı hatayı veriyor.

    SELECT id, link şeklinde başlıyorsa WHILE satırında da $id, $link şeklinde sıralaması değişmemeli. Ama, anladığım kadarı ile yazdırırken de yine bu sıralamaya göre yazdırmalıyım. Fakat bana ID lazım değil ki, çekmeme de gerek yok, yazdırmama da gerek yok. Tamam ama ID'yi çekmeyince sistem çalışmıyor, çekip kullanmayınca da çalışmıyor. Yani yukarıdaki listeye göre çeksem ve o listeye göre yazdırsam sorun olmuyor. Ama kullanmayacağım, çünkü link'i yazdırmak yetiyor zaten. Linki birinci adrese yazdırıyor ve artık hata veriyor, niye ki ondan önce MySQL de ID var ve kullanılmamış.

    Bu mantıktan hiç birşey anlamadım, bir çözümü olmalı.
  • 13-03-2010, 15:00:35
    #8
    janocan adlı üyeden alıntı: mesajı görüntüle
    Evet yaptım,
    Sadece şu hatayı veriyor:

    XML Ayırma hatası: iyi düzenlenmemiş
    Yer:: http://www.siteadi.com/categories.php
    Satır No 12, Sütun 70:
    sorguda ve döngüde bir hata gözükmüyor, satır 12 sütun 70 e baktın mı
  • 13-03-2010, 15:08:00
    #9
    Bu hata anlamsızdır.
    Çünkü değişkenler ile oynayınca bazı sonuçlar alınıyor, mesela $link yerine $id diye yazdırsam, linki şu şekilde yazdırsam bütün adresleri diziyor

    <loc>http://www.siteadi.com/index.php?id=67</loc>

    Ama siteadi.com 'dan sonra slash işareti koyup $link diye yazdırdığım zaman sadece sonuncu ID'ye sahip adresi verip hata veriyor. Bütün mesela mantıksaldır, ama çözemiyorum.