2013-06-08 3 views
1

Я пытаюсь сегментировать код, который ведет себя странно.Бесконечный свиток для элементов sql

Я использую бесконечный свиток Поля Ирландии с плагином для кладки JQuery для отображения содержимого.

Содержание вытягивается SQL и имеет определенное количество, в настоящее время 20.

Это означает, что страница будет загружать первые 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(); 
} 

Я знаю, что это делать с но я попытался добавить код к последнему без успеха.

Возможно, кто-то здесь, кто знает больше об этом, может дать некоторое понимание?

ответ

0

Я полагаю, что очень важно, что при вызове функции getEachBoardPins вы не устанавливаете второй параметр, следовательно, он по умолчанию имеет значение false, поэтому предел SQL не добавляется, поэтому оператор select будет запускать весь оператор.

+0

Я понял, что вы имеете в виду, но я также попытался поместить переменную $ limit в инструкцию без предложения if, и она по-прежнему тянет каждую строку, а не последнюю 20. –

+0

Я неправильно понял. Когда я добавляю второй параметр, определяемый как: $ limit = $ this-> config-> item ('pin_load_limit'); Страница загружает только 20. Что такое 'pin_load_limit', но больше не прокручивается. –

Смежные вопросы