Мой бот сохраняет в базу данных все айди заданий из гитлаба и присылает сообщение с инлайн кнопкой, нажав на которую бот достает из БД айди и запускает ручное задание.
Но я не понимаю, как сделать, чтобы бот доставал не последнее задание, а только то, которое мне нужно для конкретного задания.
Например, если бот отправит два сообщения с разными заданиями, то при нажатии на любую кнопку "Запустить задание" запустится только последнее
// Записывает айди задания в бд
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;
}