Merhaba, PHP ile yazılmış bir sistemde veritabanındaki satış verilerini listeletiyorum.
Ancak verileri foreach ile döndürüyorum ve +3000 tane kayıt olduğu için sayfa çok geç yüklüyor.
Datatables kullanıyorum ve server side processing yapmam lazım. (Bunu çözmeye çalıştım ancak yapamadım.)
Yardımcı olabilecek var mı ?
PHP Foreach Çok yavaş
6
●210
- 16-04-2024, 16:00:44verileri dkaha hızlı alabilmek için şu yöntemi uygula
<?php // Veritabanı bağlantısı $conn = new mysqli("localhost", "kullanici_adi", "sifre", "veritabani"); // Hata kontrolü if ($conn->connect_error) { die("Veritabanı bağlantı hatası: " . $conn->connect_error); } // İstek parametrelerini al $start = $_GET['start']; // Başlangıç indeksi $length = $_GET['length']; // Kaç kayıt alınacağı // Sorgu oluştur $sql = "SELECT * FROM satis_tablosu LIMIT $start, $length"; $result = $conn->query($sql); // Sonuçları JSON formatında döndür $data = []; while ($row = $result->fetch_assoc()) { $data[] = $row; } echo json_encode([ "draw" => intval($_GET['draw']), "recordsTotal" => /* Toplam kayıt sayısı */, "recordsFiltered" => /* Filtrelenmiş kayıt sayısı */, "data" => $data ]); // Bağlantıyı kapat $conn->close(); ?> - 16-04-2024, 16:06:21İndek ile veri aralığı seçtirdiğim sayfada var ancak sonuçları json formatına çevirmeyi anlamadım.shms adlı üyeden alıntı: mesajı görüntüle
Bunu nasıl yapabilirim? js ile sayfalama var evet.rowCount adlı üyeden alıntı: mesajı görüntüle - 16-04-2024, 16:09:09Yöntem 1. Veritabanindan tüm verileri alirsan php memory doluyor ve yavaş çalışıyor. Çözüm veritabandan bilgileri 100 er tane parça parça alirsan sorun çözülür.
Yöntem 2. Veritanindan gelen tüm verileri array şekilinde getir. Ve chunk sistemi ver parçalara ayir örnek 3000 kayit varsa 10 na böl kisaca yöntem 1 deki işlevi php tarafta sagla.
Yöntem 2. En saglami. Datatablede pagination vardir araştirsan. Pagination kullan inyernette tonlarca örnek var.
Saygilarla - 16-04-2024, 16:12:06datatable kullanmayarak custom table ile JS kütüphanesi olan datatable ile verileri listeletme yapmadan düz html css table türleri var onlarla birlikte custom şekilde verilerini pagination kullanarak sayfalara bölerek listelenmesini sağlayarak yapabilirsin.MrProxima adlı üyeden alıntı: mesajı görüntüle
- 16-04-2024, 16:37:44Sayfalama için istemci tarafında pipeline yapacaksın:
https://datatables.net/examples/serv.../pipeline.html
Sunucu tarafında ise SSP kütüphanesi kullanabilirsin. DataTables ile gönderilen istekleri işlemek için özel bir PHP kütüphanesi.