Telegram, php алгоритм пагинации

224
01 июня 2018, 08:10

У меня есть такой алгоритм пагинации для inline_keyboard, который строит 2 колонки по 6 элементов, и если элементов больше 12, но меньше 24 (раньше больше 24 у меня не было), я вручную это проверяла и дублировала код:

while ($row = mysqli_fetch_assoc($result)) {
        $one_row[$cnt] = [
            "text" => $row["test"],
            "callback_data" => "test"
        ];
        $cnt++;
        if ($cnt == 2) {
            $buttons[] = $one_row;
            $one_row = [];
            $cnt = 0;
        }
    }

Но он оказался очень не досконален, потому что если есть, например, не 14, а 15 элементов, то 15 сьедается. В общем, принимает только парное к-во элементов и если есть только 1 элемент — не показывается. В общем, прошу у вас помощи, пожалуйста. Не приходит в голову как его нормально переписать.

Если нужно, опишу ситуацию: у меня погодный бот и я дошла до этапа заполнения городов, так что к-во элементов будет сталым, но всё равно этот алгоритм нужно сделать универсальним и удобным. Помогите, пожалуйста

READ ALSO
Не работает форма голосования на php

Не работает форма голосования на php

Не могу понять, чего когда голосуешь, не отображается результат?

184
Создать цикл foreach с несколькими элементами

Создать цикл foreach с несколькими элементами

Есть код который выводит значения только одного элемента (wdo_tab_title):

208
Как исправить ошибку Fatal error: Uncaught PDOException: invalid data source name in?

Как исправить ошибку Fatal error: Uncaught PDOException: invalid data source name in?

Нужно подключится к базе данных sqliteВыдает ошибку:

217