Bu kodda çok önemli bir yanlış var. WHERE komutu kullandığınızda veritabanından 1 kayıt döner, bu yüzden veriyi while döngüsü içine almak yanlış, sorguyu bitirmek için fetch etmeniz yeterlidir.
Ayrıca mysql_free_result(); kullanmayınız, istemci betik sonunda bu gibi fonksiyonların işlerini otomatik olarak zaten yapar.
mysql_free_result(); hafızadaki sorguyu boşaltmaya yarar ama gereksizdir.