sql项目的无限滚动

时间:2013-06-08 11:35:46

标签: sql scroll

我正在尝试一段表现奇怪的代码。

我使用Paul Irish无限卷轴和JQuery砌体插件来显示内容。

内容由sql提取并且有一个设定的数字,目前为20。

这意味着页面将从数据库加载前20行内容,然后在向下滚动时加载下一行。

我在几页上有这个功能,除了一页以外它工作正常。

在此页面上,而不是加载最近的20个帖子,它会加载该特定字段中的每个帖子。有些人有超过5000个帖子,所以它真的会崩溃页面。你可以想象的一个主要问题。

我一直在努力调整代码以寻找异常,并将其缩小(我认为)到一个特定的细分市场。

这是在有效的页面上使用的代码:

function index() {
    $userID = false;
    $order = false;
    $limit = $this->config->item('pin_load_limit');
    $page = $this->uri->segment(3, 1);

    $nextOffset = ($page -1) * $limit;
    $nextPage = $page +1;
    $sql = "SELECT *
                FROM
                    pins";

    if ($userID)
        $sql .= " WHERE
                    user_id= $userID ";

    if ($order) {
        $sql .= " ORDER BY
                    ' $order'";
    } else {
        $sql .= " ORDER BY time DESC";
    }
    $sql .= " LIMIT $nextOffset,$limit";

    $query = $this->db->query($sql);
    if ($query->num_rows() > 0) {
        $row = $query->result();
    } 

这是页面上不起作用的代码:

    function getEachBoardPins($id,$limit=false)
{
    $sql    = "SELECT 
                    *
                FROM
                    pins
                WHERE
                    board_id = $id
                ORDER BY time DESC";
    if($limit)
        $sql .=" LIMIT 0 ,$limit" ;
    $query  = $this->db->query($sql);
    return $query->result();
}

我知道它与引脚负载限制有关,但我尝试将代码添加到后者但没有成功。

也许在这里有更多了解它的人可以提供更好的见解?

1 个答案:

答案 0 :(得分:0)

我认为非常可能当你调用“getEachBoardPins”函数时,你没有设置第二个参数,因此,它默认为false,因此,没有附加限制SQL,所以select语句将运行整个语句。