Как ограничить количество записей в таблице? - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1

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

#1 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 217
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 30 Октябрь 2019 - 19:08

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

Я тут не могу никак разобраться. Мне нужно, чтобы  таблицу загружалось максимум 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}

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

#2 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 484
  • Регистрация: 20-Март 09
  • Репутация: 2 556
  • IPB version:3.1.x
 

Отправлено 30 Октябрь 2019 - 22:02

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

#3 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 217
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 31 Октябрь 2019 - 12:36

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

Сообщение изменено: vinegredz (31 Октябрь 2019 - 12:37)

0

#4 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 484
  • Регистрация: 20-Март 09
  • Репутация: 2 556
  • IPB version:3.1.x
 

Отправлено 31 Октябрь 2019 - 20:19

Ну хз, в документации указан limit как количество записей. Просто дальше будет пагинации.
Можно попробовать как-то убрать пагинацю или поиграть с $table->count

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

0

#5 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 217
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 01 Ноябрь 2019 - 06:30

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

#6 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 4 076
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 594
  • IPB version:I have no IPB
 

Отправлено 01 Ноябрь 2019 - 07:34

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

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2019 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна