@instads;

eğer kodu yanlış yorumlamadıysam şöyle bir durum mevcut siz bu şekilde yaparsanız değişkene sadece döngüdeki son dönen üyenin kullanıcı adı tutulur.

if satırından önce echo $kullanici_adi; yazarsanız demek istediğimi anlarsınız. bunun yerine yukarıda diğer arkadaşlarında dediği gibi kullanıcı adlarını bir dizide tutup in array ile kontrol sağlayabilirsiniz.

Örnek:
<?php 
$query = $db->query("SELECT kullanici_adi FROM referanssistem_uyeleri", PDO::FETCH_ASSOC);
if ( $query->rowCount() ){
  foreach( $query as $row ){
     $kullanici_adi_dizi[] = $row['kullanici_adi']; // Burada kullanıcı adlarını döndürdüm, 3 tane içinde kullanıcı adı bulunmakta. (print_r ile baktım.)
} }

if (in_array($hesap->kullanici_adi, $kullanici_adi_dizi)) {
  echo 'kullanici bulundu';
}
?>
Ne yapmak istediğiniz tam bilemiyorum ama tüm üyeleri tek tek döndürmek yerine direk sql üzerinde kontrol sağlamanız ileride performans için daha faydalı olacaktır.

Sql kontrollü Örnek:
<?php 
$query = $db->query("SELECT kullanici_adi FROM referanssistem_uyeleri WHERE kullanici_adi='".$hesap->kullanici_adi."'", PDO::FETCH_ASSOC);
if ( $query->rowCount() > 0 ){
	echo 'kullanici var';
}else{
	echo 'kullanici yok';
}
?>