laimas, я даже не знаю как Вас благодарить, Вы вот практически одно слово сказали про WHERE, и сразу все стало на свои места. Вы не первый раз уже мне помогаете, а раз 10-й, и всегда четко, спасибо))
Я кое что добавил:
1) скрипт который определяет параметр из ссылки, разместил в глобальной зоне видимости, и добавил одну переменную:
var key_c = $('[name=comments_key]'),
url = document.location.pathname,
page_url = url.split('/')[2];
key_c.val(page_url);
2) Эту переменную передал на сервер, через аякс который загружает записи:
function load_comments(page){
$.ajax({
url: '/main_c/loadComments',
type: 'POST',
data: {
page: page || 0,
limit: comment_limit,
key_c: page_url,
},
dataType: 'json',
})
.done(function(result){
if (result.is_ok){
create_nav(result.nav);
create_comments(result.comments, true);
}
});
}
3) Принял эту переменную и использовал её в качестве параметра для условия WHERE:
// КОНТРОЛЛЕР
function loadComments() {
$page = isset($_POST['page']) ? (int)$_POST['page'] : 0;
$limit = isset($_POST['limit']) ? (int)$_POST['limit'] : 3;
$key_c = $_POST['key_c'];
$answer = new stdClass();
$err = array();
$answer->nav = new stdClass();
$answer->nav->page = $page;
$answer->nav->max = $this->db->count_all('comments');
if ($page * $limit <= $answer->nav->max){
$answer->comments = $this->main_model->get_comments_limit($page, $limit, $key_c);
}
$answer->is_ok = !count($err);
$answer->err = $err;
echo json_encode($answer);
}
// МОДЕЛЬ
function get_comments_limit($page=0, $limit=3, $key_c){
$this->db->order_by("id", "desc");
$query = $this->db->get_where('comments', array('key_c' => $key_c), $limit, $page * $limit);
return $query->result_array();
}
И все заработало, НО как обычно не обошлось без НО (((
Выборка данных происходит так как мне и нужно, НО "сломалась" пагинация. Она не учитывает то, что теперь у меня выводятся только определенные строки, и показывает количество страниц, ка будто выводятся все записи. То есть - если бы выводились все строки то количество страниц было бы (например) 4, в каждой страничке по 3 записи, а по факту, с учетом того что выводятся только определенные строки, выводить всего (например) 3 записи, этого хватает на одну страничку, а внизу все равно отображается 4 страницы, когда начинаешь их переключать, то они просто пустые.
В целом ситуация понятна, мой алгоритм просто считает количество всех строк в таблице, делит их на 3 (число записей которое выводиться на одну страницу) и создает соответствующее количество страниц. Теперь мне нужно доработать алгоритм таким образом что бы он учитывал что из таблицы выводятся не все записи.
Вот только я пока не имею не малейшего понятия как это сделать.
Я понимаю что это нагло с моей стороны, и Вы конечно же нечего мне не должны)) Но я очень Вас прошу, посмотреть весь мой алгоритм и подсказать как его доработать. Буду невероятно благодарен и обещаю в новогоднюю ночь выпить за Ваше здоровье бутылку шампанского
