:

   
= ? AND ts < ?" . $whereClause; $count_records = (int)get_single_field($db_link, $countSQL, $params); // === 3. Пагинация === $total = ceil($count_records / $displayed); $page = max(1, min($page, $total)); // корректное ограничение страницы $start = ($page - 1) * $displayed; // исправлено: OFFSET должен быть (page-1)*limit print_navigation($page_url, $page, $displayed, $count_records, $total); // === 4. Запрос данных с пагинацией === // Добавляем LIMIT и OFFSET как параметры (приводим к int!) $limit = (int)$displayed; $offset = (int)$start; $dataParams = array_merge($params, [$limit, $offset]); $sSQL = " SELECT * FROM worklog WHERE ts >= ? AND ts < ?" . $whereClause . " ORDER BY ts DESC LIMIT ? OFFSET ? "; $userlog = get_records_sql($db_link, $sSQL, $dataParams); ?>
\n"; print "\n"; print "\n"; $msg_level = 'INFO'; if ($row['level'] == L_ERROR) { $msg_level='ERROR'; } if ($row['level'] == L_WARNING) { $msg_level='WARNING'; } if ($row['level'] == L_DEBUG) { $msg_level='DEBUG'; } if ($row['level'] == L_VERBOSE) { $msg_level='VERBOSE'; } print "\n"; print "\n"; $print_msg = expand_log_str($db_link, $row['message']); print "\n"; print "\n"; } print "
" . get_datetime_display($row['ts']) . "" . $row['customer'] . "" . $row['ip'] . "" . $msg_level . "" . $print_msg . "
\n"; print_navigation($page_url,$page,$displayed,$count_records,$total); require_once ($_SERVER['DOCUMENT_ROOT']."/inc/footer.php"); ?>