Php ile Mysql Veritabanından Excel ‘e Veri Aktarma
Php ile Mysql Veritabanından Excel ‘e Veri Aktarma konusu ile herkese merhaba arkadaşlar, bir süredir kendi özgün makalemi yazmaya fırsat bulamıyordum, bu güzel cuma gününe nasipmiş. Bu makalemizde size mysql veri tabanında bulunan verilerimizi excel çıktısı oalrak nasıl alabileceğimizi anlatacağım. Siz mysql dediğime bakmayın, isterseniz db bağlantısını değiştirerek ister oracle server ister sql server veri tabanlarında da bilgileri excel çıktısı olarak alabilirsiniz.. Neyse fazla uzatmadan konumuza dönelim.
Php ile Mysql Veritabanından Excel ‘e Veri Aktarma
Öncelikle izleyeceğimiz yol şu:
- Veri tabanı bağlantısı kurmak
- Verileri çekmek
- Verileri excel dosyası olarak dışarı aktarmak..
Veri tabanı bağlantımızı ister sayfanın içinde isterseniz dışarıdan çağırarak yapabilirsiniz. ben dışarıdan zaten var olan sayfamı çağırmak istiyorum.. Önce mysql bağlantısı kurmak için php kodumuzu yazalım..
Mysql veritabanına bağlanma:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | $db = new Database("localhost", "DB ADI", "ŞİFRE", "DB KULLANICI"); class Database { private $link; private $host, $username, $password, $database; public function __construct($host, $username, $password, $database){ $this->host = $host; $this->username = $username; $this->password = $password; $this->database = $database; $this->link = mysql_connect($this->host, $this->username, $this->password) OR die("DB ile bağlantı hatası oluştu.."); mysql_select_db($this->database, $this->link) OR die("DB ile bağlantı hatası oluştu.."); return true; } public function query($query) { $result = mysql_query($query); if (!$result) die('Geçersiz sorgu: ' . mysql_error()); return $result; } public function __destruct() { mysql_close($this->link) OR die("DB ile bağlantı kapatılırken hata oluştu.."); } } |
Mysql veritabanından veri çekme:
Şimdi benim verilerim sanal bir mağaza veritabanında olan ürünlerden elimde olmayanların günlük olarak otomatik kayıt edildiği ancak bu verileri kullanmak için excel üzerinde işlemem gerektiği için verileri php sayfamızdan excele aktaracağız. Benim veritabanımda aşağıdaki tablolar mevcut;
- ID
- STOKREF
- STOKADI
- BIRIMKODU
- SKDV
- SFIYAT
- STOK
- AKTIF
- TARIH
Şimdi bunların içinden ID, STOK ve AKTIF tabloları bana gerekli değil bu yüzden onlara bulaşmadan diğerlerini alıyorum.. Ancak dikkat etmem gereken alacağım verilerin yeni olması için sadece bugün ki kayıtları çekeceğim. Bugünün tarihi date() komutu ile alıp tarih değişkenine atıyorum. Olur da geçmişe dönük kayıt çekmek istersek bir tarih sekmesi hazırlayıp geçmiş kayıtları da çekebiliriz. Biz şimdilik bugün ki kayıtları alalım..
1 2 3 4 5 6 | $tarih=date('Y-m-d'); // Bugünün tarihini alıp tarih değişkenine atıyoruz $sql = $db->query("SELECT * FROM oc_yeniler WHERE tarih='$tarih'"); // Veritabanından yeniler tablosuna bağlanıyoruz while($row = mysql_fetch_assoc($sql)){ // Verilerimizi çekmek için bir while döngüsü oluşturuyoruz echo $row['STOKREF']. "\t" . $row['STOKADI'] . "\t" . $row['BIRIMKODU'] ."\t" . $row['SKDV'] ."\t" . $row['SFIYAT'] . "\n"; // Verilerimizi sırasıyla hücrelere yazıyoruz } // while göngümüzü kapatıyoruz |
PHP den Excel’e veri aktarma
Aslında bu işlem sayfamızda ikinci sırada ancak işleyiş bakımından son aşama olduğu için ben sona sakladım. Kafanız karışmasın yukarıda verdiğim hiyerarşiye göre sayfamıza kodlarımız yerleştireceğim…
1 2 3 4 5 | header( "Content-Type: application/vnd.ms-excel" ); // Dosya türümüzü (vnd.ms-excel) belirliyoruz header( "Content-disposition: attachment; filename=urunler-$tarih.xls" ); // dosyamızın adını yazıp oluşturuyoruz ben dosyamın adını urunler-O GÜNÜN TARİHİ.xls olarak belirtiyorum.. echo "STOKREF\tSTOKADI\tBIRIMKODU\tSKDV\tSFIYAT\n"; // Excel hücrelerini oluşturuyorum.. |
Hepsi bu kadar şimdi sayfamızda yerlerine dizelim..
1 2 3 4 5 6 7 8 9 10 11 12 | include('db.php'); // Birinci aşamada hazırladığımız veritabanı bağlantısı sayfamızı içe aktardık.. $tarih=date('Y-m-d'); // Bugünün tarihini aldık ve tarih değişkenine attık header( "Content-Type: application/vnd.ms-excel" ); // Dosya türümüzü (vnd.ms-excel) belirledik header( "Content-disposition: attachment; filename=urunler-$tarih.xls" ); // dosyamızın adını yazıp oluşturduk echo "STOKREF\tSTOKADI\tBIRIMKODU\tSKDV\tSFIYAT\n"; // Excel hücrelerini oluşturduk $sql = $db->query("SELECT * FROM oc_yeniler WHERE tarih='$tarih'"); // Veritabanından yeniler tablosuna bağlandık while($row = mysql_fetch_assoc($sql)){ // Verilerimizi çekmek için bir while döngüsü oluşturduk echo $row['STOKREF']. "\t" . $row['STOKADI'] . "\t" . $row['BIRIMKODU'] ."\t" . $row['SKDV'] ."\t" . $row['SFIYAT'] . "\n"; // Verilerimizi sırasıyla hücrelere yazdık } // while göngümüzü kapattık |
PHP den Excel’e Verilari aktardık
Bu şekilde kodumuzu yazdıktan ve çalıştırdıktan sonra yapacağı işlem Mysql veritabanından yeniler tablosundaki kayıtlardan tarihi bugüne eşit olan kayıtları çekip Excel ‘e yazdıracak ve ismini verdiğimiz gibi urunler-O GÜNÜN TARİHİ.xls adındaki Excel dosyasını oluşturacak ardından bilgisayarımıza indirecektir.
Excel dosyamızın içeriği aşağıdaki resimde görüldüğü gibi olacaktır.
Php ile Mysql Veritabanından Excel ‘e Veri Aktarma konusu için makalem bu kakar arkadaşlar. Umarım yardımcı olabilmişimdir. . Böylelikle Mysql veritabanımızdan çektiğimiz kayıtları Excel dosyasına yazdırmayı ve Excel dosyasını bilgisayarımıza indirmeyi öğrenmiş olduk. Sizlerde projelerinizde Php ile Mysql Veritabanından Excel ‘e Veri Aktarma makalemizde anlatılan kodları geliştirerek Php’nin güzelliklerinden faydalanabilirsiniz. Bir sonraki makalede görüşmek üzere hatasız yazılımlar..
Bir cevap yazın