С MySQL вы можете использовать предложение LIMIT. Предположим, что нумерация вашей страницы начинается с 1:
$pageSize = 10;
$page = abs(intval($_GET["page"]));
if ($page < 1) {
$page = 1;
}
$startResult = ($page - 1) * $pageSize;
$sql = "SELECT * FROM `tableName` LIMIT $startResult, $pageSize";
Одна очень важная вещь, которую нужно сделать при получении параметров из внешней (враждебной) среды, - это очистить ваши входные данные. Если вы не злонамеренный пользователь или веб-бот, можете вставить любую строку в переменную вашей страницы GET и изменить свой запрос. Это называется инъекцией SQL. Просто поищите в Google, вы найдете множество объяснений.
Теперь, когда мы знаем, что наша переменная страницы должна быть положительным целым числом, я сначала обработал ее с помощью intval (получить целочисленное значение переменной), а затем abs (Абсолютное значение), так как мы хотим только положительные значения. Альтернативой является использование подготовленных операторов (ищите PDO).