Php 限制在用户加载时从数据库获取数据(分页)

Php 限制在用户加载时从数据库获取数据(分页),php,android,mysql,json,listview,Php,Android,Mysql,Json,Listview,我正在开发一个从MySQL数据库获取数据的小应用程序。假设数据库中大约有100个条目,并且我只希望获取前10个条目,并且仅当用户单击load或show more时,接下来的10个条目必须加载到同一个listview中。 我正在使用json解析器解析获取的数据,并将使用php从表中的所有数据创建json对象。我可以将json解析器的for循环限制为只解析前10个对象,但我不知道如何实现上述功能 使用的json解析器是 private void parseJsonFeed(JSONObject re

我正在开发一个从MySQL数据库获取数据的小应用程序。假设数据库中大约有100个条目,并且我只希望获取前10个条目,并且仅当用户单击load或show more时,接下来的10个条目必须加载到同一个listview中。 我正在使用json解析器解析获取的数据,并将使用php从表中的所有数据创建json对象。我可以将json解析器的for循环限制为只解析前10个对象,但我不知道如何实现上述功能

使用的json解析器是

private void parseJsonFeed(JSONObject response) {
        try {
            JSONArray feedArray = response.getJSONArray("feed");

            for (int i = 0; i < feedArray.length(); i++) {
                JSONObject feedObj = (JSONObject) feedArray.get(i);

                FeedItem item = new FeedItem();
                item.setId(feedObj.getInt("id"));
                item.setName(feedObj.getString("name"));

                // Image might be null sometimes
                String image = feedObj.isNull("image") ? null : feedObj
                        .getString("image");
                item.setImge(image);
                item.setStatus(feedObj.getString("status"));
                item.setProfilePic(feedObj.getString("profilePic"));
                item.setTimeStamp(feedObj.getString("timeStamp"));

                // url might be null sometimes
                String feedUrl = feedObj.isNull("url") ? null : feedObj
                        .getString("url");
                item.setUrl(feedUrl);

                feedItems.add(item);
            }

            // notify data changes to list adapater
            listAdapter.notifyDataSetChanged();
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}
private void parseJsonFeed(JSONObject响应){
试一试{
JSONArray feedArray=response.getJSONArray(“feed”);
对于(int i=0;i
xml布局只是一个简单的listview,由自定义适配器扩展。 我应该在哪里放置load more按钮,使其成为第11个项目,或者按钮应该显示在前10个列表项目之后


谢谢。

这不应该在客户端(android/iOS)上完成。这应该在后端完成,您必须设置mySQL查询中获取记录的限制,如下所示,
$sql = "SELECT * FROM YOUR_TABLE LIMIT 10";


上述查询将只返回十条记录。

您应该在服务器端尝试以下操作:


“a”是偏移量,“b”是限制

如果我限制取回,但将随机通过,而不发送相同的数据,该怎么办?我该怎么做呢?我写这个问题的时候还是个新手,我甚至不知道我在找分页(哈哈),我只知道这种行为。你的解决方案帮助了我。总之,我在客户端所做的是正确的,在获取数据时,数据限制(分页)必须发生在后端。我们还可以在前端维护一个页码变量,并不断递增该变量,然后将其发送到计算偏移量,根据需要,限制始终可以是20/40。在前端(Android/iOS)上,继续将数据附加到同一阵列
$sql = "SELECT * FROM YOUR_TABLE LIMIT a,b";