PHP обрабатывает эту переменную как строку, поэтому в результате генерируется этот запрос
SELECT SUM(simpanan_wajib) AS TOTAL FROM tb_simpanan WHERE badgeid_fk = '$getBadgeID' // its not converting your variable with 150502
Здесь вы можете использовать альтернативное имя или разделитель, например:
Ваш текущий запрос:
SELECT SUM(simpanan_wajib) AS TOTAL FROM tb_simpanan WHERE badgeid_fk = '$getBadgeID'
Измените ваш запрос с помощью:
SELECT SUM(simpanan_wajib) AS TOTAL FROM tb_simpanan WHERE badgeid_fk = ':getBadgeID'
Теперь вам нужно использовать str_replace
для замены разделителя вашей переменной, например:
while($data = mysqli_fetch_array($query))
{
$getQuery = str_replace(":getBadgeID", $getBadgeID , $data['sql_query']);
}
Почему я здесь использую разделитель, потому что ваша переменная $ getBadgeID имеет определенное значение внутри вашего php-скрипта и не является динамической.
В нашем чате @executable предлагает другое решение для использования подготовленного утверждения.
Edit:
В соответствии с обсуждением с @Bananaapple, я добавляю этот комментарий для будущих посетителей, Prepared Statement - это еще одно решение, которое является более безопасным, если вы хотите избежать внедрения SQL, тогда выберите готовый оператор.