限制从数据库中获取数据

时间:2015-09-16 13:57:47

标签: php android mysql json listview

我正在开发一个小应用程序,其中数据从MySQL数据库中获取。假设数据库中有大约100个条目,并且我只想获取前10个条目,并且只有当用户单击加载或显示更多时,才必须在同一列表视图中加载下10个条目。 我使用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;
    }

}

xml布局只是一个简单的列表视图,它由自定义适配器充气。 我应该在哪里放置加载更多按钮,使其成为第11个项目,或者按钮应该显示在前10个列表项目之后。

谢谢。

2 个答案:

答案 0 :(得分:1)

您应该在服务器端尝试此操作:http://www.w3schools.com/php/php_mysql_select_limit.asp

$sql = "SELECT * FROM YOUR_TABLE LIMIT a,b";

&#34;&#34;是偏移量,&#34; b&#34;是限制

答案 1 :(得分:0)

这不应该在客户端(android / iOS)端完成。这应该在后端完成,你必须在mySQL查询中设置获取记录的限制,如下所示,

$sql = "SELECT * FROM YOUR_TABLE LIMIT 10";

上面的查询只返回十条记录。