Merhaba,
Sorgulara algoritmanıza hiç bakmadan "while içine girmezse üstte table olmasın" şeklinde değerlendiriyorum.

while içinde direk echo etmek yerine $echoedilecek .="metinler";
şeklinde bir değişken oluşturun ve while'dan sonra kontrol edin. $echoedilecek oluşturulmuşsa

<table>
$echo edilecek;
</table>
çıktılayın. değilse de ne yapacaksanız onu yapabilirsiniz.

umarım yanlış anlamamışdır ve faydası olur.
Kolaylıklar.