mysql - 如何设置 MySQL 查询以接收 Backbone 分页请求?

标签 mysql api backbone.js slim

我已经使用 Slim PHP 设置了我的 API。这是获取所有事件的基本 GET 请求。我想使用 Backbone Paginator 对此进行分页。我的主要问题是......如何修改我的 SELECT 语句以接受来自 Backbone 中分页集合的参数?似乎没有任何内容详细说明如何设置 API 以从分页器接收这些请求。 This post是我能想到的最接近的,但没有说明您实际从数据库请求的内容。难道只是一个基本的“如果这个参数存在,就把它加到MySQL语句中”?看来应该有更好的方法。

$app->get('/events', 'getEvents');


function getEvents() {
    // what do I do with the $sort variable?
    $sort = $app->request()->params('sort');
    $sql = "SELECT * FROM events";

    try {
        $db = getConnection();
        $stmt = $db->query($sql);  
        $events = $stmt->fetchAll(PDO::FETCH_OBJ);
        $db = null;
        echo json_encode($events);
    } catch(PDOException $e) {
        echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    }
}

最佳答案

我不是 PHP 开发人员,但您确实需要在查询中实现分页。

参见 MySQL Data - Best way to implement paging?有关这方面的信息。

至于您链接的帖子,您可以按照提交者的方法来定义您的查询,其中包括限制:

// where $results is the number of results to return
$sql = "select * FROM events ORDER BY " . $sort . " LIMIT " . $page . " , $results";

至于存在/不存在的参数,你总是可以设置默认值。因此,如果没有请求页面,则首先提供服务,如果没有请求排序,则按对您的应用程序有意义的任何方式排序。如果存在额外参数,您可以丢弃它们。

如果你想要一个非常严格的 API,你总是可以在请求不匹配端点规范时返回一个错误

关于mysql - 如何设置 MySQL 查询以接收 Backbone 分页请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17353978/

相关文章:

mysql - 从多个表中选择数据

mysql - 我应该在 MySQL 中使用日期时间还是时间戳数据类型?

mysql - 奇怪的 MySQL 问题

php - POST instagram api 跟随 cURL PHP

php - 在我对 API 中的用户进行身份验证后,我应该如何确保他们没有访问权限太久

mysql - 使用 MySQL Workbench 6.2 将 HSQLDB 迁移到 MySQL

特定音高的Android语音识别

javascript - Backbone : How to update a model that isNew without fetching entire collection?

允许渲染后使用注入(inject)对象的Javascript模板解决方案?

javascript - 如何将 <thead> 部分添加到 tagName : 'table' ? 的 marionette collectionview 中