Forum

Xml'den Gelen Veriy...
 
Bildirimler
Hepsini Temizle

Xml'den Gelen Veriyi Mysql Veritabanına Aktarma [ PHP ]

9 Yazılar
2 Üyeler
0 Likes
3,016 Görüntüleme
(@AlperenAlpa)
Gönderiler: 30
Trusted Member
Konu başlatıcı
 

Merhaba arkadaşlar,

Benim bir xml yapım var. Xml dosyasını php ile okuyup istediklerimi ekrana yazdırıyorum. Şimdi tek kalan aşama bu verileri Veritabanına kaydetmek. Bu konu hakkında bilgilerinizi paylaşırsanız sevinirim. Teşekkür ederim...

 
Gönderildi : 17/10/2012 12:13

(@AlperenAlpa)
Gönderiler: 30
Trusted Member
Konu başlatıcı
 

Bilen yok mu ? 

 
Gönderildi : 17/10/2012 16:23

(@Ahmet_Coskun)
Gönderiler: 7
Active Member
 

Hocam ekrana nasıl yazdırıyorsun? Gelen veriyi bir değişkene atayıp

echo $degisken

şeklinde mi yazdırıyorsun?

Ki sorununu net olarak anlayabilmiş değilim yazdırdıktan sonra sql e eklemek çok basit.

mysql_query insert komutunu kullanarak bu değişkeni veritabanına yazdırabilirsin

 
Gönderildi : 17/10/2012 20:58

(@AlperenAlpa)
Gönderiler: 30
Trusted Member
Konu başlatıcı
 
<?php
$xml = simplexml_load_file("mac.xml") 
       or die("Hata Xml okunamadı. [email protected] ile iletişime geçin");
  
foreach($xml->children() as $sportType){
foreach($sportType->children() as $match => $data){
 echo "<table width= 100%  height= 4%  border= 0  >
<tr><td width= 100 bgcolor= #656565  valign= center  align= center >
<font color= white ><font size=  2 face= Tahoma >";
 echo $data->match[1]['id'];
 
 echo "</font></td>";
   echo "<td width= 300 bgcolor= #656565  valign= center  align= center >
<font color= #fff ><font size=  2 face= Tahoma> ";
 echo $data->match[1]['titleName'];
 echo "</font></td>";
 echo "<td width= 100 bgcolor= #656565  valign= center  align= center >
<font color= #fff ><font size=  2 face= Tahoma> ";
 echo $data->match[1]['startDate'];
 echo "</font></td>";
 echo "<td width= 250 bgcolor= #656565  valign= center  align= center >
<font color= #fff ><font size=  2 face= Tahoma>";
      echo $data->match[1]['homeName'];
 echo "</font></td>";
 echo "<td width= 250 bgcolor= #656565  valign= center  align= center >
<font color= #fff ><font size=  2 face= Tahoma>";
 echo $data->match[1]['awayName'];
  echo "</font></td>";
 
echo "<td width= 90 bgcolor= #656565  valign= center  align= center >
<font color= #fff ><font size=  2 face= Tahoma>";
 echo $data->match[1]['score'];
  echo "</font></td>";
 echo "<td width= 4% bgcolor= #656565  valign= center  align= center >
<font color= #fff ><font size=  2 face= Tahoma>";
echo "1.20";
 echo "</font></td>";
 echo "<td width= 4% bgcolor= #656565  valign= center  align= center >
<font color= #fff ><font size=  2 face= Tahoma>";
echo "1.20";
 echo "</font></td>";
 echo "<td width= 4% bgcolor= #656565  valign= center  align= center >
<font color= #fff ><font size=  2 face= Tahoma>";
echo "1.20";
 echo "</font></td>";  
 
 echo "</td></tr></table>";
 
}
}
?>
 
Bu şekilde okuyorum. Tabloya verileri düzgün şekilde getiriyor. mysql_query denedim ama olmadı  yada ben yapamadım. Diğer bütün üye ekleme vs çalışıyor bu vt ye kaydetme olmadı.
 
Gönderildi : 18/10/2012 02:30

(@Ahmet_Coskun)
Gönderiler: 7
Active Member
 

hocam mac.xml dosyasında yazanlarıda yollayabilirsen ben yapmaya çalışayım. Burdan XML çıkarmak benim içinde zor bir durum :$

 
Gönderildi : 18/10/2012 13:59

(@AlperenAlpa)
Gönderiler: 30
Trusted Member
Konu başlatıcı
 

https://rapidshare.com/files/1735400886/xml.rar

 

Al kardeş php ve xml içinde  

 
Gönderildi : 18/10/2012 15:24

(@Ahmet_Coskun)
Gönderiler: 7
Active Member
 

hocam yapabildiğim kadarıyla birşeyler karaladım.. Öncelikle şu şekilde bir veritabanı oluşturdum

CREATE TABLE `maclar` (
  `id` varchar(50) NOT NULL default '',
  `titleName` varchar(50) default NULL,
  `startDate` varchar(50) default NULL,
  `homeName` varchar(50) default NULL,
  `awayName` varchar(50) default NULL,
  `score` varchar(50) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

daha sonra sayfanın en üstüne veritabanı bağlantısı yaptım

<?
 mysql_connect("db_host","db_user","password") || die ("Hata 1");
  mysql_select_db("db_name") || die ("Hata 2");
?>

son echo satırından sonra şöyle bir kod ekledim.

   $id = $data->match[1]['id'];
   $titleName = $data->match[1]['titleName'];
   $startDate = $data->match[1]['startDate'];
   $homeName = $data->match[1]['homeName'];
   $awayName = $data->match[1]['awayName'];
   $score = $data->match[1]['score'];
  
  
  
    $tablo = "INSERT INTO maclar (id,titleName,startDate,homeName,awayName,score) VALUES ('$id', '$titleName', '$startDate', '$homeName', '$awayName', '$score')";
    $tablo++;
  
 }

if (mysql_query($tablo) ) {
 echo "Kaydınız gerçekleştirildi";
 } else {
 echo "Bir sorun çıktı.Kaydınız gerçekleşmedi.";
 }

Bu komutlarla yazdırdığın tablodaki son 724988 id li maçı veritabanına yazdırdı ancak bunu dizi şekline getiremedim.

NOT: Elimden geldiğince yardımcı olmaya çalıştığımdan elimden sadece bu kadarı geldi hocam umarım faydası olur.

 
Gönderildi : 18/10/2012 18:29

(@AlperenAlpa)
Gönderiler: 30
Trusted Member
Konu başlatıcı
 
<?php
ob_start("ob_gzhandler");
/**
 * @author Alp
 * @copyright 2011
 */
$isim = "ben";
$yer = "localhost";
$sifre = "123456";
$database = "ben";
$baglan = mysql_connect($yer,$isim,$sifre);
if($baglan){
    
    mysql_select_db($database,$baglan);
    
}else{
    
    echo "Hata var kontrol et";
}
@setlocale(LC_ALL, 'turkish');
$v_benzersiz_id = md5(rand(1,20));
$klasor_tarihi = "24.10.2011";
$tarihnsaat =  iconv('latin5','utf-8',strftime("%d %B %Y, %A "));
$yazar_bid_yap = md5(rand(1,20));
//." " .strftime("%H:%M:%S");
?>
<body bgcolor="#000000">
<table width="80%" border="1"bordercolor="#eaff00">
  <tr>
   <!--Tüm Tablo Başlangıç--> <td>
    <table width="100%" height="4%" border="0"  >
<tr><td width="100"bgcolor="#049a00" valign="center" align="center">
<font color="white"><font size= "2"face="Tahoma">Maç Kodu</font>
</td><td width="300"bgcolor="#049a00" valign="center" align="center">
<font color="white"><font size= "2"face="Tahoma">Lig Grubu</font>
</td><td width="100"bgcolor="#049a00" valign="center" align="center">
<font color="white"><font size= "2"face="Tahoma">Saat</font>
</td><td width="250"bgcolor="#049a00" valign="center" align="center">
<font color="white"><font size= "2"face="Tahoma">Ev Sahibi</font>
</td><td width="250"bgcolor="#049a00" valign="center" align="center">
<font color="white"><font size= "2"face="Tahoma">Deplasman</font>
</td><td width="90"bgcolor="#049a00" valign="center" align="center">
<font color="white"><font size= "2"face="Tahoma">Skor</font>
</td><td width="4%"bgcolor="#049a00" valign="center" align="center">
<font color="white"><font size= "2"face="Tahoma">1</font>
</td><td width="4%"bgcolor="#049a00" valign="center" align="center">
<font color="white"><font size= "2"face="Tahoma">0</font>
</td><td width="4%"bgcolor="#049a00" valign="center" align="center">
<font color="white"><font size= "2"face="Tahoma">2</font>
</td>
</td>
</table>
   
   </td>   <!--Tüm Tablo Bitiş-->
  </tr><!-- Tüm Tablo Bitiş-->
 <tr><td>
<?php
$xml = simplexml_load_file("mac.xml") 
       or die("Hata Xml okunamadı. [email protected] ile iletişime geçin");
  
foreach($xml->children() as $sportType){
foreach($sportType->children() as $match => $data){
 echo "<table width= 100%  height= 4%  border= 0  >
<tr><td width= 100 bgcolor= #656565  valign= center  align= center >
<font color= white ><font size=  2 face= Tahoma >";
 echo $data->match[1]['id'];
 
 echo "</font></td>";
   echo "<td width= 300 bgcolor= #656565  valign= center  align= center >
<font color= #fff ><font size=  2 face= Tahoma> ";
 echo $data->match[1]['titleName'];
 echo "</font></td>";
 echo "<td width= 100 bgcolor= #656565  valign= center  align= center >
<font color= #fff ><font size=  2 face= Tahoma> ";
 echo $data->match[1]['startDate'];
 echo "</font></td>";
 echo "<td width= 250 bgcolor= #656565  valign= center  align= center >
<font color= #fff ><font size=  2 face= Tahoma>";
      echo $data->match[1]['homeName'];
 echo "</font></td>";
 echo "<td width= 250 bgcolor= #656565  valign= center  align= center >
<font color= #fff ><font size=  2 face= Tahoma>";
 echo $data->match[1]['awayName'];
  echo "</font></td>";
 
echo "<td width= 90 bgcolor= #656565  valign= center  align= center >
<font color= #fff ><font size=  2 face= Tahoma>";
 echo $data->match[1]['score'];
  echo "</font></td>";
 echo "<td width= 4% bgcolor= #656565  valign= center  align= center >
<font color= #fff ><font size=  2 face= Tahoma>";
echo "1.20";
 echo "</font></td>";
 echo "<td width= 4% bgcolor= #656565  valign= center  align= center >
<font color= #fff ><font size=  2 face= Tahoma>";
echo "1.20";
 echo "</font></td>";
 echo "<td width= 4% bgcolor= #656565  valign= center  align= center >
<font color= #fff ><font size=  2 face= Tahoma>";
echo "1.20";
 echo "</font></td>";  
 
 echo "</td></tr></table>";
 
 
}
}
?>
<?php 
 $id = $data->match[1]['id'];
   $titleName = $data->match[1]['titleName'];
   $startDate = $data->match[1]['startDate'];
   $homeName = $data->match[1]['homeName'];
   $awayName = $data->match[1]['awayName'];
   $score = $data->match[1]['score'];
   
   
   
    $tablo = "INSERT INTO maclar (id,titleName,startDate,homeName,awayName,score) VALUES ('$id', '$titleName', '$startDate', '$homeName', '$awayName', '$score')";
    $tablo++;
   
if (mysql_query($tablo) ) {
 echo "Kaydınız gerçekleştirildi";
 } else {
 echo "Bir sorun çıktı.Kaydınız gerçekleşmedi.";
 }
?>
</td></tr></table>
</body>
 
Evet bu şekilde eklemeye başladı. Sana neden sadece 1 kayıt eklediğini söyleyim match[1]['id'] derken sadece o tabloda 1 nolu maçı detiriyor . O yüzden sadece sen 1 nolu kaydı atıyorsun. Şimdi ben döngü eklicem match['id'] ile çekip match++; yapıp ilerleticem ve hepsi eklenicek. İlgin için ve yardımın için çok teşekkür ederim dostum . Ellerine ve yüreğine sağlık... 
 
Gönderildi : 18/10/2012 21:40

(@Ahmet_Coskun)
Gönderiler: 7
Active Member
 

Önceki mesajımda da söylediğim gibi hocam 🙂 PHP çok fazla anladığım bir dil değil sadece elimden geldiğince yardımcı olmaya çalıştım yardımcı olabildiysemde ne mutlu bana. Seninde yüreğine sağlık. Son yaptığın match açıklaması içinde ayrıca teşekkürler

 
Gönderildi : 19/10/2012 02:27

Paylaş: