$limit = 10; // количество записей на одну страницу
$page = $_GET['page']; // получаем номер страницы из URL
$offset = ($page - 1) * $limit;
// получаем параметры выбора пользователя
$param1 = $_GET['param1'];
$param2 = $_GET['param2'];
$param3 = $_GET['param3'];
// подготавливаем и выполняем запрос
$stmt = $pdo->prepare('SELECT * FROM my_table WHERE column1 = :param1 AND column2 = :param2 AND column3 = :param3 LIMIT :limit OFFSET :offset');
$stmt->bindValue(':param1', $param1);
$stmt->bindValue(':param2', $param2);
$stmt->bindValue(':param3', $param3);
$stmt->bindValue(':limit', $limit, PDO::PARAM_INT);
$stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
$query = "SELECT id, pid, name FROM your_table";
$result = $mysqli->query($query);
$items = [];
while($row = $result->fetch_assoc()){
$items[$row['id']] = ['pid' => $row['pid'], 'name' => $row['name']];
}
function buildTree(array $elements, $parentId = 0) {
$branch = array();
foreach ($elements as $element) {
if ($element['pid'] == $parentId) {
$children = buildTree($elements, $element['id']);
if ($children) {
$element['children'] = $children;
}
$branch[] = $element;
}
}
return $branch;
}
$tree = buildTree($items);