Laragon tavsiye edebilim.
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.
Dediğiniz gibi yaptım fakat yine sonuç kısmı boş gözüküyor. 0 yazmıyor.
Sorun Mysql deki ayarlardan kaynaklanıyormuş. ONLY_FULL_GROUP_BY devre dışı bırakmak gerekiyormuş.
https://stackoverflow.com/questions/41887460/select-list-is-not-in-group-by-clause-and-contains-nonaggregated-column-inc
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
Sorgulama kodu olarak da aşağıdaki kodu kullandığımda işimi gördü.
SELECT * FROM katilimcilar GROUP BY `bayikodu` ORDER BY `bayikodu` ASC
Teşekkürler.
Başka bir sunucuya veritabanı yediğini alıp yükledim. O sunucu da aşağıdaki kodu çalıştırdığımda istediğim sonucu verdi.
SELECT * FROM katilimcilar GROUP BY `bayikodu` ORDER BY `bayikodu` ASC
Normal sunucuda çalıştırdığımda aşağıdaki hatayı alıyorum.
Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'veritabani_dosya.katilimcilar.katilimci_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Dediğiniz gibi yaptığım da yine sadece bayikodu bölümü geliyor. Diğer alanlar gelmiyor.
Dediğiniz gibi yaptım da aşağıdaki hatayı alıyorum.
which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Aşağıdaki gibi yaptığım da çalışıyor ama select kısmında bayikodu yanına adı gibi diğer bilgileri eklediğimde hata alıyorum.
SELECT bayikodu FROM katilimcilar GROUP BY `bayikodu` ORDER BY `bayikodu` ASC
Anlamadım bir şekilde cronjob çalışmaya başladı :)
wget -O -q https://site.com/dosyalar/calisacak-dosya.php
Bu şekilde kullandım şuan çalışıyor teşekkürler.
Dediğiniz gibi hepsini * olarak işaretledim.
2 farklı cronjob oluşturdum.
wget -O -q /home/websayfasi/domains/website.com/public_html/dosyalar/calisacak-dosya.php
wget -O -q https://site.com/dosyalar/calisacak-dosya.php
Bu iki komutu da denedim birisinden birisi çalışır diye ama yine sonuç alamadım.
calisacak-dosya.php dosyasını direk çalıştırıdğım da metin belgesinin içerisine "Çalıştırıldı" mesajını ekliyor.
Ama cronlarda hiç bir sonuç alamadım.
Dediğiniz gibi denedim. Fakat yine olmadı. Acaba çalışma zamanı ile ilgili bir yanlışlık yapmış olabilir miyim ?
Dakika Saat Ayın günü Ay Ayın haftası Komut
43 19 * * * wget -O -q https://siteadresi.com/dosyalar/calisacak-dosya.php