Datatable İle Sayfalama Yapma Problemi.
-
Merhaba,
jquery tarafında
$('#results').DataTable({ /* var results="<?php echo pagination($statement,$limit,$page,$current_url);?>", results{ statement:"next", limit:"Last", page:"first", current_url:"last" }, */ pagingType: 'full_numbers', language: { info: "_TOTAL_ record _START_ - _END_ showing", infoEmpty: "No record", loadingRecords: "Records loading", zeroRecords: "Table is empty", search: "Quick Search:", infoFiltered: "(total _PAGES_ record filtered)", buttons: { print: "Print", excel: "Excel", }, oPaginate: { sFirst: "First", sLast: "Last", sNext: "Next", sPrevious: "Previous", }, }, dom: 'Qfrtip', buttons: [ 'excel', 'print' ], responsive: true,
kullandığım kod:
bu da sql tarafı
$total_sql = "SELECT sum(cards_given) as c_give, sum(cards_printed) as c_print, sum(cards_returned) as c_ret, sum(cards_faulty) as c_fault FROM cs_daily d JOIN cc_type t ON d.id_cc_type = t.id_cc_type WHERE {$q_where} ORDER BY date DESC, name ASC"; $total_result = mysql_query($total_sql, $db) or die(mysql_error()); //---------------------------------------------------------------------------------------- $statement = "`cs_daily` d JOIN cc_type t ON d.id_cc_type = t.id_cc_type WHERE {$q_where}"; $result1 = mysql_query($sql, $db) or die(mysql_error()); $current_url = curPageURL(); $current_url .="&"; } else { $query = "SELECT id_daily, name, date, type, cards_given, cards_printed, cards_returned, cards_faulty FROM cs_daily d JOIN cc_type t ON d.id_cc_type = t.id_cc_type ORDER BY date DESC, name ASC LIMIT {$startpoint} , {$limit}";
şu üç satırda sayfa başına kaç kayıt göstereceğini belirliyor:
$page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]); $limit = 20; $startpoint = ($page * $limit) - $limit;
tablo $limit değişkeninde belirlenen sayı kadar, kayıt gösteriyor.
ve son olarakta sayfalama yapmak için ise şu kod kullanılmış.
<?php echo pagination($statement,$limit,$page,$current_url);?>
ben bunu jquery tarafına nasıl uyarlayabilirim acaba ?
Yardımlarınız için şimdiden teşekkür ederim.
-
-
datatable zaten kendisi sayfalama yapıyor. Tüm veriyi sayfaya göndermeniz yeterli olur.
-
biri bunu yazdı
datatable zaten kendisi sayfalama yapıyor. Tüm veriyi sayfaya göndermeniz yeterli olur.
Evet doğru hocam, fakat tüm veriyi gönderdiğim zaman bütün veriyi db den fetch etmesi gerekeyior, buda haliyle sayfanın yüklünmesi çok uzun sürüyor. Tam olarak yapmak istediğim örneğin sayfa numarasını tıkladığım zaman o sayfada belirlenen sayı kadar veri çekmesi.
-
-
biri bunu yazdı
datatable zaten kendisi sayfalama yapıyor. Tüm veriyi sayfaya göndermeniz yeterli olur.
oyle sacma sey mi olur. pagination olayi zaten sunucundan sayili veri getirip requestlerdeki, dolayisiyla sunucudaki yuku azaltmak. requestle birlikte gelen index, offset bilgilerini db sorgunda kullanman lazim.
-
whopper bunu yazdıbiri bunu yazdı
datatable zaten kendisi sayfalama yapıyor. Tüm veriyi sayfaya göndermeniz yeterli olur.
oyle sacma sey mi olur. pagination olayi zaten sunucundan sayili veri getirip requestlerdeki, dolayisiyla sunucudaki yuku azaltmak. requestle birlikte gelen index, offset bilgilerini db sorgunda kullanman lazim.
çok sert girme hocam :) normalde evet öyle ama mantıken 150-200 den fazla kaydın kesinlikle girilmeyeceği ekranlar için ben de benzer mantık uyguluyorum. getall ile hepsini çekip basıyorum frontend sayfalamasını yapıyor rahat rahat.
-
whopper bunu yazdı
oyle sacma sey mi olur. pagination olayi zaten sunucundan sayili veri getirip requestlerdeki, dolayisiyla sunucudaki yuku azaltmak. requestle birlikte gelen index, offset bilgilerini db sorgunda kullanman lazim.
Hocam zaten hali hazirda, sayfalarin hesaplandigi eski bir php sayfasi var. Fakat onu datatable ile kullanamiyorum.
-
manglerman bunu yazdıwhopper bunu yazdıbiri bunu yazdı
datatable zaten kendisi sayfalama yapıyor. Tüm veriyi sayfaya göndermeniz yeterli olur.
oyle sacma sey mi olur. pagination olayi zaten sunucundan sayili veri getirip requestlerdeki, dolayisiyla sunucudaki yuku azaltmak. requestle birlikte gelen index, offset bilgilerini db sorgunda kullanman lazim.
çok sert girme hocam :) normalde evet öyle ama mantıken 150-200 den fazla kaydın kesinlikle girilmeyeceği ekranlar için ben de benzer mantık uyguluyorum. getall ile hepsini çekip basıyorum frontend sayfalamasını yapıyor rahat rahat.
Hocam peki geniş tablolar için bunu kullanamayiz mi ? Yardım edebileceklere olmaz ise maddi yardım edebilirim.
-
1- get isteği alınca json formatında sadece verileri sana basan bir endpoint ayarla
2- datatable ajax ı incele. verileri o şekilde dinamik olarak çekebilirsin. -
Diffstorm bunu yazdımanglerman bunu yazdıwhopper bunu yazdıbiri bunu yazdı
datatable zaten kendisi sayfalama yapıyor. Tüm veriyi sayfaya göndermeniz yeterli olur.
oyle sacma sey mi olur. pagination olayi zaten sunucundan sayili veri getirip requestlerdeki, dolayisiyla sunucudaki yuku azaltmak. requestle birlikte gelen index, offset bilgilerini db sorgunda kullanman lazim.
çok sert girme hocam :) normalde evet öyle ama mantıken 150-200 den fazla kaydın kesinlikle girilmeyeceği ekranlar için ben de benzer mantık uyguluyorum. getall ile hepsini çekip basıyorum frontend sayfalamasını yapıyor rahat rahat.
Hocam peki geniş tablolar için bunu kullanamayiz mi ? Yardım edebileceklere olmaz ise maddi yardım edebilirim.
https://datatables.net/examples/server_side/simple.html
kopyala yapıştır burdan baby bak altta php kodu da var