Причина, по которой ваш код не работал:
- Вы установили 'true' как результат не найден, поэтому, если он ничего не найдет, он продолжит цикл.
- У вас было эхо, показывающее вам код, несмотря ни на что.
Это способ достичь того, что вы перечислили:
do {
$unique_num = mt_rand(1000,9999);
// NOTE: changed mysql_query to use mysqli! (prepared statement not required here)
$exists = mysqli_fetch_row(
mysqli_query(
$connection,
"SELECT COUNT(*) FROM brugere WHERE medlemsnummer = $unique_num"
)
)[0];// [0] means grab column result
} while($exists);
echo "Code done! - " . $unique_num;
Это всегда будет запускать код один раз (делать) и повторяться, если в базе данных было найдено случайное число. Если он не найден в базе данных, у вас есть случайное число в переменной, которое можно использовать в качестве прихоти после завершения цикла while.
Для этих вещей неплохо добавить отказоустойчивый:
$c = 0;
do {
$c++;
/// other code
} while ($exists and $c < 1000);