|
0 / 0 / 0
Регистрация: 07.05.2022
Сообщений: 19
|
|||||||||||
Telegram Bot Перелистывание страниц22.05.2022, 23:50. Показов 2768. Ответов 24
Метки нет (Все метки)
Библиотека — aiogram
В общем, у меня есть база данных и есть код: База данных(на столбец "ostatki" не обращайте внимание, это я лично для себя) — https://yapx.ru/v/SE5OB (фотохостинг) (сама генерация)
Ну и как понимаете, это выглядит некрасиво. Я нуждаюсь в помощи как создать кнопку с перелистыванием страницу(Следующая, обратно) чтобы на одной странице было 5 надписей(кнопки + кнопки с перелистываем)
0
|
|||||||||||
| 22.05.2022, 23:50 | |
|
Ответы с готовыми решениями:
24
pyTelegramBotAPI Перелистывание страниц
|
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
|
| 23.05.2022, 00:08 | |
|
- в базе для каждой записи имейте id
- в глобальной переменной храните id первой из трех показываемых в данный момент кнопок (начальное значение 1), - при нажатии на кнопку - увеличивайте значение и обновляйте keyboard - при обновлении keyboard - считайте 3 значения из базы начиная со значения глобальной переменной. вместо глобальной переменной можно туда сюда передавать значения, но это уж сами решайте
0
|
|
|
0 / 0 / 0
Регистрация: 07.05.2022
Сообщений: 19
|
|
| 23.05.2022, 00:48 [ТС] | |
|
проблема в ID, я в этой базе данных могу удалять строчки, а ID не будет меняться и будет получаться что после 2 у меня идёт не 3, а 4. Как с этим быть? Можно ли как то вместо ID считать количество строчек(count)?
0
|
|
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
|
| 23.05.2022, 00:52 | |
|
Если значений в базе будет не очень много - считайте их без id и пронумеруйте сами.
0
|
|
|
0 / 0 / 0
Регистрация: 07.05.2022
Сообщений: 19
|
|
| 23.05.2022, 00:53 [ТС] | |
|
Если честно, я не имею понятие сколько будет строчек, точно не получится по количеству строчек в таблице?
0
|
|
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
|
| 23.05.2022, 01:01 | |
|
Если значений будет много - смысла в пагинации по три очень мало все равно, никто не захочет листать 7000 значений по три до самого конца.
0
|
|
|
0 / 0 / 0
Регистрация: 07.05.2022
Сообщений: 19
|
|
| 23.05.2022, 01:02 [ТС] | |
|
Я для примера написал 3, мне просто нужно чтобы это работало
0
|
|
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
|
| 23.05.2022, 01:10 | |
|
тогда так - все еще иметь id, при выборке - order by id и limit по кол-ву нужных записей (3), даже если будут пропущенные id - limit заберет ровно 3 записи.
0
|
|
|
0 / 0 / 0
Регистрация: 07.05.2022
Сообщений: 19
|
|
| 23.05.2022, 01:12 [ТС] | |
|
а смысл иметь ID, если можно по namefirma забирать 3 штуки?
0
|
|
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
|
| 23.05.2022, 01:14 | |
|
А когда следующие три будете забирать то начиная с какой строки будете выборку делать?
0
|
|
|
0 / 0 / 0
Регистрация: 07.05.2022
Сообщений: 19
|
|
| 23.05.2022, 01:27 [ТС] | |
|
По поводу ID понял, но по поводу как это всё написать пока что в мозгу не складывается, то есть мне надо сохранить в переменную цифру 3 например, написать код, в котором будет написано чтобы показывались 3 первые кнопки и кнопка следующая страница, нажимая на кнопку следующая страница у меня к переменной добавляется +3 и показывается 6 кнопок, вместо следующих 3, я правильно понял или нет?
Добавлено через 7 минут можете дать подсказку как показать кнопки №4, №5, №6, а не все 6 кнопок
0
|
|
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
|
| 23.05.2022, 01:38 | |
Сообщение было отмечено Wylamins как решение
Решение
1
|
|
|
0 / 0 / 0
Регистрация: 07.05.2022
Сообщений: 19
|
|
| 23.05.2022, 13:09 [ТС] | |
|
тут я кое-что раздобыл, короче, можно ли обойтись без столбца ID? с помощью rowid
0
|
|
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
||
| 23.05.2022, 15:23 | ||
|
0
|
||
|
Модератор
|
|||||||||||||||||||||
| 23.05.2022, 15:40 | |||||||||||||||||||||
|
Wylamins, Jabbson, Усложняете, берем таблицу, вида:
1) Получаем текущую страницу пользователя:
2) Получаем список продуктов:
Второе значение количество отображаемых записей Добавлено через 3 минуты Пусть отображается по 5 записей, тогда логика будет такой: 1) Получаем текущую страницу из таблицы "USERS" (допустим 10) 2) Получаем записи отсортированные по индексу (можно пропустить этот момент) с позиции 10 (текущая страница) * 5 (кол. отображаемых записей), в количестве 5 штук 3) В итоге получаем строки с 50 по 55
0
|
|||||||||||||||||||||
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
|
| 23.05.2022, 15:41 | |
|
а PAGE - это что?
0
|
|
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
|
| 23.05.2022, 15:43 | |
|
а с удаляемыми и добавляемыми записями точно будет работать?
0
|
|
|
Модератор
|
||||||
| 23.05.2022, 15:53 | ||||||
|
Jabbson, будет сильное смещение содержимого страниц, если удалять предыдущие записи, но если надо избежать такого эффекта, можно запоминать минимальный индекс отображаемых записей, и немного изменить условие:
* первое значение: текущий индекс + количество отображаемых записей * второе значение: количество отображаемых записей Предыдущие записи: * первое значение: текущий индекс - количество отображаемых записей * второе значение: количество отображаемых записей Добавлено через 1 минуту P.S. возможно запросы не особо корректны (т.к. пишу по памяти), но логика надеюсь ясна.
1
|
||||||
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
|
| 23.05.2022, 15:56 | |
|
Именно из-за этого и усложняем
![]() Я предложил тоже самое, только сохранял и первый индекс и последний, просто чтобы не высчитывать их.
0
|
|
| 23.05.2022, 15:56 | |
|
Помогаю со студенческими работами здесь
20
Перелистывание страниц Перелистывание страниц Перелистывание страниц Перелистывание страниц Перелистывание страниц Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|