@Studentka1996

Как вывести одно число с помощью цикла for?

Для тех, кто не понимает, что реализую это в боте, читайте внимательно теги:)

Надоело выдумывать.. возможно глупо, но хочется реализовать вот так:
if 'Далее' in text:
        for i in range(2, 6): #Создала список чисел (для rowid)
            #LIMIT 1 OFFSET 2 - получить 1 строку, начиная со 2 записи
            #Определим общее кол-во записей выбранной категории
            connect_cursor.execute(f'''SELECT Ф.Имя, GROUP_CONCAT(Объем ||' '|| Цена_руб ||' '|| Код), Описание, Состав, Ф.В_наличие, Расширение, Путь_к_файлу
            FROM Товар Т JOIN Фото Ф ON Т.Товар = Ф.Имя JOIN Атрибут_товара А ON Т.Код_атрибута = А.Код GROUP BY Ф.Имя LIMIT 1 OFFSET {i+1}''') 
            show_infoTovars()


Как сделать так, чтобы только при нажатии "Далее" выводился следующий товар

Есть список [2, 3, 4, 5]
Далее -> 2
Далее-> 3
Далее -> 4
Далее -> 5

Прошу помощи. Буду рада новым идеям решения данного вопроса.

P.S. Этот вариант не сработает:
for i in range(2, 6): #Создала список чисел (для rowid)
        if text == 'Далее':
            #LIMIT 1 OFFSET 2 - получить 1 строку, начиная со 2 записи
            #Определим общее кол-во записей выбранной категории
            connect_cursor.execute(f'''SELECT Ф.Имя, GROUP_CONCAT(Объем ||' '|| Цена_руб ||' '|| Код), Описание, Состав, Ф.В_наличие, Расширение, Путь_к_файлу
            FROM Товар Т JOIN Фото Ф ON Т.Товар = Ф.Имя JOIN Атрибут_товара А ON Т.Код_атрибута = А.Код GROUP BY Ф.Имя LIMIT 1 OFFSET {i+1}''') 
            show_infoTovars()
  • Вопрос задан
  • 178 просмотров
Пригласить эксперта
Ответы на вопрос 2
@LeoMay
Студент
Создать список, перебирать его по индексу
Ответ написан
@o5a
Это "Далее" же видимо берется из клавиатуры бота? Т.е. это результат callback. Можете передавать в callback_data id следующего элемента "Далее_3" и при разборе callback его используйте (или как индекс списка, или rowid, или еще аналогично, в зависимости от вашей логики).

Другой вариант, хранить словарь с состояниями меню по каждому пользователю (chat.id). Соответственно можно будет посмотреть в словаре текущее состояние и после каждого "Дальше" обновить следующее. Скажем так:
menu_info[message.chat.id]['next_id']

Еще, такой способ вытягивания записей, через последовательные опросы limit 1 offset X не гарантируют последовательные результаты без явной сортировки (order by).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы