v2.5.2
Giriş yap

Php DataTable büyük veri listeleme

mb
768 defa görüntülendi

Merhabalar
DataTable üzerimden yaklaşlık 50 bin civarındaki veriyi listeleme yapmaya çalışıyorum.
Fakat veriler çok olduğu için ve sürekli arttığı için sayfayı fazlasıyla yavaş yükeleniyor ve sistemi yoruyor.

Sorunu çözmek için yapıktlarım
Listeleme sayfasında php ile sayfalama yaptım. Fakat bu sefer DataTable üzerindeki Excel çıktısı alma özelliği doğal olarak gösterilen kayıtları dışarıya aktarıyor sadece.
Arama özelliği tüm veriler yerine gelen verilerde arama yapıyor.

Bu verileri sayfayı çok yormadan listelemek ve aynı zaman da arama yapmak, istenildiği zaman excel çıktısı olarak almak istiyorum.

Bunun için neler yapabilirim.

Cevap yaz
Cevaplar (2)
mb
724 gün önce

Merhabalar,
DataTable ile büyük verileri nasıl çekebileceğimi araştırırken aşağıda yazıya rastladım. Burada Datatable server-side ile yapabileceğimi gördüm.

https://datatables.net/forums/discussion/8789/tips-for-using-datatables-with-very-large-data-sets

Bu işlem için ssp.class.php isimli bir dosyaya ihtiyaç duyuluyor. Aşağıda linkini verdim.

https://github.com/DataTables/DataTablesSrc/blob/master/examples/server_side/scripts/ssp.class.php

Bu çekilde ajax ile dosyaları kolaylıkla ve hızlı bir şekilde çekebildim. Fakat sql sorgunuzda JOIN veya GROUP BY kullanımı varsa
bunu yapamıyorsunuz. Çünkü bunun için bir bölüm bulunmuyor.

Bu sorunu da çözmek için SQL de View oluşturarak bu sorunu çözebileceğimi gördüm. Sorgu ile view oluşturdum ve daha sonra gerekli yere tablo
ismini yazarak istediğim sonucu aldım.

https://stackoverflow.com/questions/59712722/calling-a-function-in-datatable-server-side-processing (2. Adım)

Verilerde arama yaparken hiç bir sorun yok. Tüm veriler içerisinde arama yapıyor. Ama verilerin çıktısını excel veya pdf olarak almak isterseniz
o an sayfada gösterilen verileri aktarıyor. Bunun için de başka bir excel aktarma işlemi yapmam gerekecek.

abdullahx
724 gün önce

Arama yapmak için serverSide özelliğini kullanabilirsiniz fakat tüm tabloyu dışa aktarmak için ya tüm verileri istemci tarafına çekmeniz ya da bu işi sunucu tarafında halletmeniz gerekiyor diyor resmî dokümanlarda.
https://datatables.net/faqs/index#buttons