Php ile Mysql Veritabanından Excel ‘e Veri Aktarma

By LovelessGent
In Makale
Ağu 8th, 2014
0 Comments
1516 Views

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:

  1. Veri tabanı bağlantısı kurmak
  2. Verileri çekmek
  3. 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 - Php To Excel

Php ile Mysql Veritabanından Excel ‘e Veri Aktarma – Php To Excel

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

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

Connect with Facebook