Я пытаюсь создать нумерацию страниц в SLIM PHP Framework API.Я заставил что-то работать, но это не совсем завершено.Эта нумерация страниц будет работать только в одном конкретном вызове API.Как бы я ни хотел реализовать это глобально при любом вызове.Есть ли способ связать их глобально?
$app->get('/api/art', function( Request $request, Response $response){
$page = (isset($_GET['page']) && $_GET['page'] > 0) ? $_GET['page'] : 1;
$limit = isset($_GET['limit']) ? $_GET['limit'] : 10;
$offset = (--$page) * $limit;
$countsql = "SELECT COUNT(*) as COUNT FROM ART";
$datasql = "SELECT * FROM ART LIMIT :limit OFFSET :offset";
try{
$db = new db();
$db = $db->connect();
$countQuery = $db->prepare( $countsql );
$dataQuery = $db->prepare( $datasql );
$dataQuery->bindParam(':limit', $limit, \PDO::PARAM_INT);
$dataQuery->bindParam(':offset', $offset, \PDO::PARAM_INT);
$dataQuery->execute();
$countQuery->execute();
$db = null;
$count = $countQuery->fetch(PDO::FETCH_ASSOC);
$num = $count['COUNT'];
if($num>0){
$data_arr=array();
$data_arr["records"]=array();
while ($row = $dataQuery->fetch(PDO::FETCH_ASSOC)){
extract($row);
array_push($data_arr["records"], $row);
}
http_response_code(200);
echo json_encode($data_arr);
}
else{
http_response_code(404);
echo json_encode(
array("message" => "No products found.")
);
}
}catch( PDOException $e ) {
echo '{"error": {"msg": ' . $e->getMessage() . '}';
}
});
Это дает точные данные по мере необходимости, api/art?page=1&limit=100
, но как мне реализовать их в другом API, таком как /api/form?page=1&limit=80
, не повторяя ту же самую вещь снова иочередной раз.
Также, если есть лучший способ сделать это, пожалуйста, поделитесь.