Задать вопрос
  • Почему не отображается tableView при нажатии на кнопку?

    gagarin67
    @gagarin67
    iOS-разработчик
    Ну, во-первых, stackView не добавлен на view (view.addSubview(stackView)), во-вторых, нужно установить для stackView констрейнты или хотя бы фрейм, чтобы у нее были размеры, отличные от .zero, в-третьих, находящаяся в stackView tableView с большой долей вероятности будет иметь нулевую высоту, я бы не рекомендовал так делать, а добавил бы ее просто ниже stackView
    Ответ написан
    1 комментарий
  • Как вывести сплошной текст построчно?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    JSON_PRETTY_PRINT
    https://www.php.net/manual/ru/function.json-encode.php

    json_encode($var, JSON_PRETTY_PRINT);
    Ответ написан
    1 комментарий
  • Как вывести строки с бд в зависимости от их количества с ограничением?

    @Vitsliputsli
    Наверное, потому что:
    PDOStatement::fetch — Извлечение следующей строки из результирующего набора
    в то время, как есть:
    PDOStatement::fetchAll — Выбирает оставшиеся строки из набора результатов
    Ответ написан
    Комментировать
  • Как в gitlab создать hook, чтобы среагировать на commit ?

    Serhioromano
    @Serhioromano
    Web Developer
    Ну на сервере где у вас сайт, делаете скрипт который запускает команду git pull. И на этот скрипт урл добавляете. Сервис хук просто гарантирует что после комита в репозиторию на этот урл будет отправлен реквест. А вы уж сами его обработайте.

    Вот пример. Это примитивно. Так делать нельзя. Это не безопастно. Просто что бы объяснить идею. В сервис хуках ставите урл

    mysite/git.php

    На сайте сздаете файл git.php

    <?php
    exec('git pull');


    Как то так.
    Ответ написан
    5 комментариев
  • Почему не выводится последний элемент из бд mysql?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Вопрос "почему не выводится" здесь неуместен. Здесь скорее подойдёт вопрос "Этот код вообще хоть как-то работает?" Спойлер: нет.

    Этот код неправильный по стольким параметрам, что у меня просто нет слов.
    Он писался явно без малейшего понимания, а просто методом "подставлю какой-то код, авось подойдёт".
    Причём понимания нет ни на каком уровне - ни того как работает БД, ни того как работает РНР, ни того как РНР работает с БД. Ни даже простого житейского здравого смысла. Зачем в message_get() все эти $user_name = mysqli_real_escape_string ($username);?

    Во-первых, с помощью LAST_INSERT_ID получить "последнюю запись" можно только сразу после вставки. А поскольку в "основном коде" получение сообщения явно не выполняется в одной ветке с записью, то LAST_INSERT_ID не сработает. Причём тут даже простой житейской логики нет. Если сначала один пользователь добавил сообщение, а потом второй, то при получении "последнего" как БД узнает, чьё "последнее" сообщение надо показать?
    Чтобы показать последнее сообщение для определённого пользователя, надо, как правильно отметили в комментариях, надо отсортировать таблицу по времени добавления и выбрать только 1 строку с помощью LIMIT.
    Но кроме этого надо указать, для какого пользователя мы получаем это сообщение.

    Во-вторых, функция mysqli_real_escape_string() вызывается неправильно, она будет выдавать ошибку. А по-хорошему вообще нужно использовать не её, а подготовленные выражения.

    В-третьих, 'message' в запросе вернёт слово 'message', а совсем не само сообщение.

    В-четвёртых, view_message хочет показать несколько значений, но в запросе выбирается только это 'message'

    Во-пятых, как правильно написали выше, функция ни сама ничего не возвращает, ни даже не получает запрошенную из БД информацию. Функция должна выглядеть по крайней мере так

    function message_get($user_id) {
        global $db;
        $chat_id = mysqli_real_escape_string($db,$user_id);
        $query = "SELECT message_id, user_id as chat_id,  message as `text` 
            FROM `secret_messages` 
            WHERE user_id='$chat_id' ORDER BY id DESC LIMIT 1";
        $result = mysqli_query($db, $query);
        return $result->fetch_assoc();
    }

    и потом получать при вызове
    $post = message_get($user_id);
    Ответ написан
    Комментировать
  • Как сделать удаление сообщения в телеграм боте после нажатия на любую кнопку?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    https://core.telegram.org/bots/api#deletemessage

    <?php
    function deleteMessage($callback_query, $bot_api_key)
    {
        $apiUri = 'https://api.telegram.org/bot'.$bot_api_key.'/deleteMessage?'.
                  '&chat_id='.$callback_query->message->chat->id.
                  '&message_id='.$callback_query->message->message_id.
                  '';
    
        return file_get_contents($apiUri);
    }
    Ответ написан
    Комментировать
  • Как сделать разделение кнопок в сообщении телеграм бота?

    nastya97core
    @nastya97core
    Начинающий программист
    $mata["reply_markup"] = json_encode([
    			"keyboard" => [
    				[["text"=>"Кнопка в одну строку"]],
    				[["text"=>"левая кнопка"], ["text"=>"правая кнопка"]], // вторая строка
    				[["text"=>"Кнопка в одну строку"]],
    			]
    		]);


    Дело в массивах. Есть массив, в котором каждый массив - строка. В этом каждом массиве - каждый другой массив - кнопка

    В твоём случае:
    $inline_keyboard_questions_account = [
        [
            ['text' => '№1', 'callback_data' => 'question 1'],
            ['text' => '№2', 'callback_data' => 'question 2'],
            ['text' => '№3', 'callback_data' => 'question 3']
        ],
        [
            ['text' => '№4', 'callback_data' => 'question 4'],
            ['text' => '№5', 'callback_data' => 'question 5']
        ]
    ];
    Ответ написан
    Комментировать