@fakin_kiska
Telegram Bots and iOS

Как достать из БД нужный элемент?

Мой бот сохраняет в базу данных все айди заданий из гитлаба и присылает сообщение с инлайн кнопкой, нажав на которую бот достает из БД айди и запускает ручное задание.

Но я не понимаю, как сделать, чтобы бот доставал не последнее задание, а только то, которое мне нужно для конкретного задания.

Например, если бот отправит два сообщения с разными заданиями, то при нажатии на любую кнопку "Запустить задание" запустится только последнее

// Записывает айди задания в бд
function job_id_set($job_id)
{
    global $pdo;
    $sql = "INSERT INTO `notification_messages` (job_id)
    VALUES (:job_id)";
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(':job_id', $job_id, PDO::PARAM_INT);
    $stmt->execute();
    return true;
}

// Получение айди задания
function job_id_get($job_id)
{
    global $pdo;
    $sql = "SELECT job_id
        FROM notification_messages
        ORDER BY id DESC LIMIT 1";
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(':job_id', $job_id, PDO::PARAM_STR);
    $stmt->execute();
    return $stmt->fetch();
}

if ($status == 'manual') {
    job_id_set($job_id);
    $post = [
        'chat_id' => $user_id,
        'text' => 'Webhook caught manual pipeline event',
        $start_job_button = [[['text' => 'Start Job', 'callback_data' => 'start_job']]],
        'reply_markup' => inline_keyboard($start_job_button)
    ];
    sendRequest('sendMessage', $post);
}

switch ($callback_data) {  // Кнопка "Запустить задание"
case 'start_job':
    $job_id_get = job_id_get($job_id);
    exec('curl --request POST --header "PRIVATE-TOKEN: <TOKEN>" "https://example.com' . $job_id_get['job_id'] . '/play"');
    break;
}
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
SELECT job_id
        FROM notification_messages
        ORDER BY id DESC LIMIT 1

этот код у вас достает последнее по дате.
вам нужно что то типа

SELECT job_id
        FROM notification_messages
        Where id = 'you_id'


причем where модифицируйте под ваши задачи,
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы