Показать сообщение отдельно

  #3  
Старый 19.03.2023, 18:39
zzalupka
Познающий
Регистрация: 16.03.2023
Сообщений: 49
С нами: 1666070

Репутация: 13
По умолчанию

Проблема заключается в том, что переменная $uidinfo2 находится внутри области видимости цикла while, а не доступна внутри обработчика каллбека кнопки. Вы можете объявить переменную за пределами цикла, а затем присвоить ей значение внутри цикла, чтобы она была доступна и в обработчике каллбека кнопки:

Код:





Код:
if(in_array($cmd, ['юзер'])) {

 try {

$uid = implode(" ", $args);

if($uid == '') {

$vk->reply("Не указан аргумент, пример: (юзер 1)");

 exit;

        }

$result = $mysqli->query("SELECT * FROM `users` WHERE id=$uid");

$uidinfo2 = '';

while($row = $result->fetch_assoc()) {

$uidinfo2 = $row['username']; // Условно - abcdef

        }

if ($uidinfo2 != '') { //исправлено с $uidinfo1 на $uidinfo2

$list .= "ЛОГИН - ".$uidinfo2;

$vk->sendButton($id, $list, [[$texttest]], true);

} else {

$vk->reply('Не найдено в таблице');

        }

    }

catch (Exception $e) {

$vk->reply("Ошибка: ".$e->getMessage() );

    }

}

if ($payload) {

if ($payload['user'] == 'ulink') {

$vk->reply("Ссылка на профиль: https://site.com/$uidinfo2");

    }     

}


Теперь переменная $uidinfo2 будет доступна и внутри обработчика каллбека кнопки и ссылка будет формироваться правильно.
 
Ответить с цитированием