İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Mysql den veri çekerek sitemap yapma (Php İle)

selim61

0
İyinet Üyesi
Onaylı Üye
Katılım
10 Mayıs 2006
Mesajlar
5,299
Reaction score
11
Konum
<?=selim61?>
Sitemap konusunda çok istek geliyor , db den direk çekerek yapsak olmazmı diye.Bunun için kullandığını scripti biraz bilmeniz gerekiyor.
Mysql den veri çekerek sitemap yapmayı anlatabildiğim şekilde anlatayım.
İçerik tablo yapım şu şekilde
oyun
--id
--title
.......
Benim bu tablo yapısında kullanacağım id ve title(seo yaptıgım için) alanlarım, Seosu olmayanlar title alanını pas geçebilir.Ör: dosya.php?id=5 gibi linkleri olanlara oyun tablosundan sadece id alanı yeterli olucaktır.
PHP:
<?php
#
/*
Coded by Selim61
http://www.sistembilgisi.com/web-programlama/php-ve-mysql/mysql-den-veri-cekerek-sitemap-yapma.html
*/
$siteurl="http://www.selim61.com"; //site adresi
mysql_connect("localhost", "kullanici adi", "sifre") or die ("Hata: veritabanina baglanilamadi!.Bilgiler yanlis");
mysql_select_db("db_adi") or die ("Hata: veritabanina baglanilamadi!.Db yok");

header('Content-type: text/xml');
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-9\" ?>\n";
echo "<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\">";

//seo url yapmak için kullandıgım fonksiyon herkes kendi sitesininkisini bilecek

function seourl($id,$baslik) {
		$baslik = str_replace(" ","-",$baslik);
        $baslik = str_replace("'","_",$baslik);
        $baslik = str_replace(":","_",$baslik);
        $baslik = str_replace("ä","a",$baslik);
        $baslik = str_replace("ö","o",$baslik);
        $baslik = str_replace("ü","u",$baslik);
		$baslik = str_replace("ş","s",$baslik);
		$baslik = str_replace("ç","c",$baslik);
		$baslik = str_replace("ı","i",$baslik);
		$baslik = str_replace("ğ","g",$baslik);
		$baslik = str_replace("Ö","o",$baslik);
        $baslik = str_replace("Ü","u",$baslik);
		$baslik = str_replace("Ş","s",$baslik);
		$baslik = str_replace("Ç","c",$baslik);
		$baslik = str_replace("İ","i",$baslik);
		$baslik = str_replace("Ğ","g",$baslik);
		$baslik = strtolower($baslik);
        $seourl = $siteurl."/oyun/".$id."/".$baslik.".html";
	return $seourl;
}

//içeriğimi sıralayayım
$sorgu = mysql_query("SELECT oid, title FROM files WHERE status = '1'");
while ($sonuc = mysql_fetch_array($sorgu)) {
$oid = $sonuc['id'];
$oadi = $sonuc['title'];
echo "\n<url>\n<loc>".seourl($oid, $oadi)."</loc>\n<changefreq>always</changefreq>\n<priority>1.0</priority>\n</url>";
}
echo "\n</urlset>";
?>
Burda önemli olan nokta içeriği sıralamak.
Bunun için scriptinizi biraz bilmelisiniz.Mesela bende url yapan bir fonksiyon var:
PHP:
function seourl($id,$baslik) {
		$baslik = str_replace(" ","-",$baslik);
        $baslik = str_replace("'","_",$baslik);
        $baslik = str_replace(":","_",$baslik);
        $baslik = str_replace("ä","a",$baslik);
        $baslik = str_replace("ö","o",$baslik);
        $baslik = str_replace("ü","u",$baslik);
		$baslik = str_replace("ş","s",$baslik);
		$baslik = str_replace("ç","c",$baslik);
		$baslik = str_replace("ı","i",$baslik);
		$baslik = str_replace("ğ","g",$baslik);
		$baslik = str_replace("Ö","o",$baslik);
        $baslik = str_replace("Ü","u",$baslik);
		$baslik = str_replace("Ş","s",$baslik);
		$baslik = str_replace("Ç","c",$baslik);
		$baslik = str_replace("İ","i",$baslik);
		$baslik = str_replace("Ğ","g",$baslik);
		$baslik = strtolower($baslik);
        $seourl = $siteurl."/oyun/".$id."/".$baslik.".html";
	return $seourl;
}
Burda sadece içeriği sıraladık, çoğaltabiliriz tabiki
PHP:
//Kategorilerimi sıralıyayım
$ksorgu = mysql_query("SELECT kid, title FROM kategori WHERE status = '1'");
while ($ksonuc = mysql_fetch_array($ksorgu)) {
$kid = $ksonuc['id'];
$kadi = $ksonuc['title'];
echo "\n<url>\n<loc>".katurl($kid, $kadi)."</loc>\n<changefreq>always</changefreq>\n<priority>1.0</priority>\n</url>";
}

soru ve takıldıgınız yerleri konu altından sürekli cevaplayabilirim.
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
66
Konum
Sakarya
Başlık ve konu anlatımında hata var.
Şimdi ben yeni bir webmasterim sıfırdan bir MySQL veritabanı kurdum ve bu mesajı okuyorum. Ne anlarım?

Güzel paylaşım +
 

selim61

0
İyinet Üyesi
Onaylı Üye
Katılım
10 Mayıs 2006
Mesajlar
5,299
Reaction score
11
Konum
<?=selim61?>
Başlık ve konu anlatımında hata var.
Şimdi ben yeni bir webmasterim sıfırdan bir MySQL veritabanı kurdum ve bu mesajı okuyorum. Ne anlarım?

Güzel paylaşım +
Bunu pm ve yorumlardan gelen istek üzerine yazdım, yani bazı şeyleri biliyorlar diye kabul ettim.yoksa sıfırdan bir mysql veritabanı kuran birisinin sitemap ile işi olacağını sanmıyorum.Sitemap genelde mysqlde fazla içeriği olanları ilgilendirmesi lazım diye düşünüyorum.
Program kullanıp saatlerce beklemektense kullandıkları script hakkında bi iki araştırma yapıp kendi sitemapınizi oluşturmak en kolayı diye düşündüm.
Anlatıma gelince anlatabilme yeteneğim olsa çok şeyleri değiştirebilirdim :)
 

GReYDeR

0
İyinet Üyesi
Katılım
6 Şubat 2007
Mesajlar
618
Reaction score
0
Konum
Manisa
soru ve takıldıgınız yerleri konu altından sürekli cevaplayabilirim.

seo kullanmıyorum seo yazan kısmı silecekmiyim?
linklerim bu şekilde çalışıyor
?catID=1&cat=Komik&vid=1484
içerik sıralama kısmında seourl falan seo olmayınca tıkandım :)

şimdi diyeceksin geriye ne kaldı:)

kalmadı haklısın ama :S

yardımcı olursan sevinirim,
çok şey istediysem yapmak zorunda değilsin
 

selim61

0
İyinet Üyesi
Onaylı Üye
Katılım
10 Mayıs 2006
Mesajlar
5,299
Reaction score
11
Konum
<?=selim61?>
seo kullanmıyorum seo yazan kısmı silecekmiyim?
linklerim bu şekilde çalışıyor
?catID=1&cat=Komik&vid=1484
içerik sıralama kısmında seourl falan seo olmayınca tıkandım :)

şimdi diyeceksin geriye ne kaldı:)

kalmadı haklısın ama :S

yardımcı olursan sevinirim,
çok şey istediysem yapmak zorunda değilsin
tabloların yapısı hakkında bilgi verirsen yardım edebilirim
iyinet ne demek istediğini şimdi anladım yazı eksik olmuş :=)
 
M

maiL

Misafir
ie de mesela xml olarak herşey güzel şekilde veriyor. hiçbir değişiklik yapmadan birde ff de bakıyorum hata veriyor.

ff de verdiği hatada yazan aynen şöyle :

XML Ayrıştırma Hatası: xml işleme komutu harici varlığın başında değilLocation: http://www.xxx.net/oyunlarxml.phpLine Number 2, Column 1:<?xml version="1.0" encoding="ISO-8859-9" ?>
^
 
M

maiL

Misafir
sorunu çözdüm hata bendeymiş.
paylaşım için teşekkürler selim61.
 

manglerman

0
İyinet Üyesi
Katılım
1 Eylül 2006
Mesajlar
340
Reaction score
0
Konum
<%="istanbul"%>
seo kullanmıyorum seo yazan kısmı silecekmiyim?
linklerim bu şekilde çalışıyor
?catID=1&cat=Komik&vid=1484
içerik sıralama kısmında seourl falan seo olmayınca tıkandım :)

şimdi diyeceksin geriye ne kaldı:)

kalmadı haklısın ama :S

yardımcı olursan sevinirim,
çok şey istediysem yapmak zorunda değilsin


o şekilde çalıştıramazsın hocam. tecrübeyle sabit. querystringde iki adet değişken göönderince ne google tanıyo nede diğer arama motorları. zaten explorer ve firefox givi yorumlayıcılarda çalıştırmıyo.

bu yüzden siteyi seolu hale getirin önce (.html ile biten sayfalar şekilnde)

kolay gelsin
 

Cagatay

0
İyinet Üyesi
Katılım
10 Mart 2006
Mesajlar
2,789
Reaction score
0
akşam eve geçeyim hemen deneyecem
gerçekten güzel bir uygulama (çalıştırabilene) :D
sagol selim +rep
 

deviL

0
İyinet Üyesi
Katılım
22 Ağustos 2007
Mesajlar
731
Reaction score
2
Konum
Antalya
Bende yapamadım, hata veriyor sizin seonuza göre. Kendi seoma göre ayarlamaya çalışıyorum gene yapamıyorum :D
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst