Php & xml

       Web slider konusunda verilen haber sliderına , bilgiler veri tabanından yüklenebilir . Bu slider , bilgileri (haberleri) haberler.xml dosyasından alıyordu . Bir de swf dosyası bulunuyordu . Sliderımıza haberleri rastgele göstersin.Yani veri tabanıdan 100 kayıt varsa bunlardan 10 tanesi rastgele gösterilsin.Bunun için SQL içinde rnd( ) fonksiyonunu kullanacağız . Bu sliderı veri tabanına entegre edelim.

Yukarıda görüldüğü gibi sliderımızda haberBaslik swf dosyası ve haberler dosyalarımız vardı.Sliderı BURADAN indirebilirsiniz.

İŞLEM ADIMLARI . . .

PHPMyAdmin ile daha öncede oluşturduğumuz veri tabanınına ait bilgiler aşağıda verilmiştir.

Veri tabanı adı : vt Tablo adı: makaleler
Silerda bulunan resimler klasörünü silebiliriz.Çünkü resimleri veri tabanından yükleyeceğiz.haberler.xml dosyasını silebiliriz.Bu dosyayı php içinden oluşturacağız.

Bir PHP dosyası oluşturalım . (slider.php)

PHP dosyasından veri tabanımıza bağlanalım .

<?php

$host=“localhost”;
$dbname=“vt”;
$kadi=“root”;
$sifre=“”;
try{
$db=new PDO(“mysql:host=$host;dbname=$dbname;charset=utf8″,”$kadi”,”$sifre”);
}catch(PDOException $mesaj){
echo $mesaj->getmessage();
}

PHP dosyasına xml dosyasını (haberler.xml) oluşturacak kodları yazalım .

header(“content type:text/xml”);
$dosya = fopen(“haberler.xml”,”w”);

PHP dosyasına xml dosyasını (haberler.xml) oluşturacak kodları yazalım .

$sec= $db->prepare(“select * from makaleler order by rand() limit 0,10”);
$sec->execute(array());
$x=$sec->fetchALL(PDO::FETCH_ASSOC);

Yukarıdaki sorguda veri tabanındaki tüm kayıtlar araından 10 tanesi rastgele seçilir.Eğer son 10 kaydı göstermek isteseydik aşağıdaki kodları yazmamız gerekirdi.

$sec= $db->prepare(“select * from makaleler order by makale_id desc limit 0,10”);

“desc” kayıtları tersten sıralamak için kullanılır .

 

PHP kodlarıyla oluşturduğumuz haberler.xml dosyası içine fputs( ) fonksiyonunu kullanarak xml kodları yazdıralım .

fputs($dosya,”<haberler>”);

foreach($x as $y){
fputs($dosya,”<haber>”);
fputs($dosya,”<baslik>”. $y[“makale_baslik”]).”</baslik>”;
fputs($dosya,”<ozet>”. $y[“makale_aciklama”]).”</ozet>”;
fputs($dosya,”<resimYolu>”. $y[“makale_resim”].”</resimYolu>”);
fputs($dosya,”</haber>”);
}
fputs($dosya,”</haberler>”);

Seçilen kayıtlara ulaşmak için foreach( ) döngüsü oluşturuluyor .

Son olarak içerinde slider bulunan swf dosyasını slider.php dosyasına ekleyelim.(Bu işlemi BURADAN bakarak hatırlayabiliriz.

slider.php’yi çalıştırdığımızda habeler.xml dosyası oluşur.Veri tabanındaki kayıtlar haberler.xml dosyasına yüklenir . Sayfayı her açtığımızda rastgele 10 kayıt slidera yüklenir.

KODLAR GENEL GÖRÜNÜM

<?php

$host=”localhost”;
$dbname=”vt”;
$kadi=”root”;
$sifre=””;
try{
$db=new PDO(“mysql:host=$host;dbname=$dbname;charset=utf8″,”$kadi”,”$sifre”);
}catch(PDOException $mesaj){
echo $mesaj->getmessage();
}

header(“content type:text/xml”);
$dosya = fopen(“haberler.xml”,”w”);

$sec= $db->prepare(“select * from makaleler order by rand() limit 0,10”);
$sec->execute(array());
$x=$sec->fetchALL(PDO::FETCH_ASSOC);

fputs($dosya,”<haberler>”);

foreach($x as $y){
fputs($dosya,”<haber>”);
fputs($dosya,”<baslik>”. $y[“makale_baslik”]).”</baslik>”;
fputs($dosya,”<ozet>”. $y[“makale_aciklama”]).”</ozet>”;
fputs($dosya,”<resimYolu>”. $y[“makale_resim”].”</resimYolu>”);
fputs($dosya,”</haber>”);
}
fputs($dosya,”</haberler>”);

?>

slider.php

Paylaş:

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir