While döngüsüne ne gerek var? id ile sorguladığınıza tek kayıt var.
while($heidi = mysql_fetch_assoc($hadi))
{
$baslik = $heidi['yazi_basligi'];
}
// Yerine
$heidi = mysql_fetch_assoc($hadi);
$baslik = $heidi['yazi_basligi'];
arkadaşın sorgusu tek kayıt almaz order by kullanmış belirli bir koşul yok sadece id e göre listeletiyor belki 10 bin içerik varsa 10 binide gelecektir. aslında yukarıdaki örnek baştan sona hatalı.