Как правильно загружать данные из БД в DataTables?

Здравствуйте. Имеется таблица с 50 000 записями и эти записи я гружу в динамические таблицы DataTables. Из-за того, что она грузит сразу все записи при загрузке страницы, загрузка идет около 2 минут. Как сделать, чтобы сначала грузилась только первая страница, где 10 записей отображается, а при переходе на 2 страницу, уже другие 10 записей? А не все сразу при открытии страницы. Спасибо
  • Вопрос задан
  • 904 просмотра
Пригласить эксперта
Ответы на вопрос 1
larisamoroz
@larisamoroz
Курю маны, втыкаю в код, ваяю, починяю.
Используйте опцию serverSide ( https://datatables.net/examples/data_sources/serve... ), тогда при запросе к серверу datatables будет передавать параметры search, order, start, length
$(document).ready(function() {
    $('#example').DataTable( {
        "processing": true,
        "serverSide": true,
        "ajax": "../server_side/scripts/server_processing.php"
    } );
} );


Соответственно, при запросе в мускуль делаете :
$sql_query = "SELECT * FROM `employee` LIMIT ?, ?"; 
$stmt = $db->prepare($sql_query);
$stmt->bindParam($params['start'], $min, PDO::PARAM_INT); // правильно подставляем start
$stmt->bindParam($params['length'], $min, PDO::PARAM_INT); // правильно подставляем length
$stmt->execute();

или то же самое через PDO.
При необходимости используйте search — строка поиска и order — столбцы и направление сортировки
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы