Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
vinegredz

Как ограничить количество записей в таблице?

Рекомендованные сообщения

Здравствуйте.

 

Я тут не могу никак разобраться. Мне нужно, чтобы  таблицу загружалось максимум 8 записей из базы данных. Чтобы PHP при работе с базой данных остановил работу, сразу как достигнет 8 записей. Нужно что-то вроде LIMIT из MySQL, только для фреймфорка IPS. Посмотрел в исходниках много мест где используется Table Helpers, но не нашел нужной функции в классе.  Мой код, который выводит таблицу:

 

{{$table = new \IPS\Helpers\Table\Content('IPS\cms\Records2', $record->url());}}
{{$table->limit= 8;}}
{{$table->pages= 1;}}
{$table|raw}

Кто может подкинуть решение?

Поделиться сообщением


Ссылка на сообщение

Попробуйте $table->count = 8;

Поделиться сообщением


Ссылка на сообщение
10/31/19 10:36 (изменено)

Нет, не помогло. Я смотрел исходники класса Helpers\Table, и кажется там нет вообще. Походу, что-то с where придумывать, но в поисках более в стиле фреймворка IPS.

Изменено пользователем vinegredz

Поделиться сообщением


Ссылка на сообщение

Ну хз, в документации указан limit как количество записей. Просто дальше будет пагинации.

Можно попробовать как-то убрать пагинацю или поиграть с $table->count

 

/**
 * @brief	Number of records to show
 */
public $limit = 25;

Поделиться сообщением


Ссылка на сообщение

limit ограничивает количество записей на одной странице, но ощущение такое, что SQL запрос, который делается при таком параметре все равно переваривает всю таблицу (потому что генерирует пагинацию), а мне нужно, чтобы после нахождения 8 записей, база данных не напрягалась. А пагинацию можно спрятать с помощью CSS, например.

Поделиться сообщением


Ссылка на сообщение

system/Helpers/Table/Content.php

		$this->count = $class::getItemsWithPermission( $where, $sortBy, NULL, $this->permCheck, $this->includeHiddenContent, 0, NULL, $this->joinContainer, $this->joinComments, $this->joinReviews, TRUE, $this->joins, ( $this->container ) ? $this->container : FALSE, TRUE, TRUE, TRUE, $this->showMovedLinks );
	$it = $class::getItemsWithPermission( $where, $sortBy, array( ( $this->limit * ( $this->page - 1 ) ), $this->limit ), $this->permCheck, $this->includeHiddenContent, 0, NULL, $this->joinContainer, $this->joinComments, $this->joinReviews, FALSE, $this->joins, ( $this->container ) ? $this->container : FALSE, TRUE, TRUE, TRUE, $this->showMovedLinks );
	$this->pages = ceil( $this->count / $this->limit );

В первой строке считается кол-во записей

Во второй выбираются сами записи (X штук на страницу)

В третьей считается кол-во страниц

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...