Toplam 191 konuya 1132 yorum yazıldı.
Pdo Excelden Veri Çekme ve Kaydetme İşlemi

Merhaba arkadaşlar bu dersimizde yine çok güzel bir konu ile sizlerleyim :) Bir önceki excel dersimizde yanlızca veritabanımızda bulunan verileri excel dosyasına aktarmıştık o işlemde sınıf falan kullanmamıştık. Direk olduğu gibi yazdırmıştık.



Bu dersimizde ise bilgisayarımızda bulunan bir excel dosyasındaki verileri önce phpexcel sınıfını kullanarak çekicez daha sonra ise çektiğimiz excel verilerini veritabanımıza pdo ile kayıt edicez.



Evet yavaş yavaş işlemlerimize geçelim öncelikle kullanacağımız sınıfı indirmeniz gerekiyor onu buradan indirebilirsiniz.



Öncelikle hazırladığımız excel dosyamıza bir bakalım nasıl bir yapıdaymış :)





Excel dosyamızı hazırladığımıza göre artık sınıfımızı kullanarak exceldeki verilerimizi nasıl çekeceğiz ona bir göz atalım..




<?php

include 'Classes/PHPExcel.php';

// Excel kütüphanemizin yolunu belirtiyoruz.

$ExcelDosyasi = 'yavuz-selim.xlsx'; // Excel Dosyamızı Seçiyoruz. (Formatlar: xls, xlsx)

$ExcelOku = PHPExcel_IOFactory::load($ExcelDosyasi);

$ExcelVeriler = $ExcelOku->getActiveSheet()->toArray(null, true, true, true);

//Excelde kullanacağımız sütunlarımızı seçiyoruz.

?>


Şimdi sınıfımızı kullanarak excel dosyamızdaki verilerimizi çektik peki bu verilerimizi nasıl göreceğiz..Hemen onada bi göz atalım print_r() ile yazdırdığımzda karşımız şöyle bir yapı gelecek..




<?php

echo "<pre>";

print_r($ExcelVeriler);

echo "</pre>";

?>


Ve çağırdığımızda şöyle bir yapı bizi karşılayacak.. Gördüğünüz üzere yanlızca true değerini verdiğimiz sütunlarımız görünüyor.. Bu kısıma dikkat etmeniz gerekmektedir.





Evet gördüğünüz üzere excel dosyamızda bulunan verileri güzel bir şekilde çektik.. Şimdi çektiğimiz verileri veritabanımıza yazdırma işlemi kaldı :) Hemen o işlemede geçelim :)




<?php

foreach($ExcelVeriler as $ExcelAl){

if($ExcelAl["A"] != "Başlık" && $ExcelAl["B"] != "İçerik" && $ExcelAl["C"] != "Tarih"){

$Kayit = $db->prepare("INSERT INTO veriler SET baslik=?, icerik=?, tarih=?");

$Kayit->execute(array( $ExcelAl["A"], $ExcelAl["B"], $ExcelAl["C"] ));

echo "#".$db->lastInsertId()."Nolu Kayıt Başarıyla Eklendi<br>";

}

}

?>


Çektiğimiz verilerimizi veriler tablomuzda ki alanlarımıza yazdırdık.Tablo isimlerini aynı yaptım kafanız karışmasın diye siz kendinize göre düzenlersiniz. burada if( $ExcelAl != "Başlık") yapmamızın sebebi arrayden gelen ilk değerin, excelde yer alan başlıklar olmasıdır. Bunun önüne geçmek için bu kontrolü yaparak veritabanımıza kayıt edilmesini sağladık.



Not : veritabanımızdaki alanların hepsi utf8_general_ci olmalıdır.



İşlemlerimiz bukadar arkadaşlar yapamayan olursa konu altına yorum atması yeterlidir :) Kolay gelsin.


Yorumlar

YAVUZ SELİM ŞAHİN

19.02.2016 10:08

Saolun dahada güzel konular gelicek çok yakında :)

Ali Bekiroğlu

19.02.2016 09:36

Çok güzel.

Yorum Yaz