Burdaki fonksiyonu kendi kullandığım bir fonksiyonla harmanlayıp şöyle bişey yapmıştım. @CeRBeR burdan kopya çekebilirsin
function display2_children($KatNo, $UstKatNo, $s) {
	global  $Katlar; 
	$result = mysql_query("SELECT * FROM haber_kat WHERE ust_sayfa_be='".$KatNo."' ORDER BY sira ASC;");
	$q2=mysql_query("SELECT * FROM haber_kat WHERE sayfa_be = '$_GET[be]' LIMIT 1"); // BURADA SAYFANIN GERÇEK ÜST KATEGORİSİNİN NE OLDUĞUNU BULUYORUM
	$a2=mysql_fetch_array($q2);
	   while ($a1 = mysql_fetch_array($result)){
		  $a1[baslik]=stripslashes($a1[baslik]);
		  if($s=='0'){$kaydir2="-"; $css="class='alt'";}
          else{    for($a=0;$a<2*$s;$a++){$kaydir.="&nbsp;";}$kaydir2="$kaydir »";}
		  if($a2[ust_sayfa_be] == $a1[sayfa_be]){  // VE BURADA BULDUĞUM DEĞERE GÖRE SELECTED VEYA NORMAL YAPIYORUM
			$Katlar .= "<option $css value=\"$a1[sayfa_be]\" selected>$kaydir2$a1[baslik]</option>";
	      }
		  else{
			$Katlar .= "<option $css value=\"$a1[sayfa_be]\">$kaydir2$a1[baslik]</option>";
		  }
		  unset($kaydir);
		  $altkategorivarmi=mysql_num_rows(mysql_query("select sayfa_be from haber_kat where ust_sayfa_be='".$a1["sayfa_be"]."'"));
          if($altkategorivarmi>0){global $i; $i++; display2_children("".$a1["sayfa_be"]."",$UstKatNo,"$i"); $i=$i-1;}		   
	   }
	}
	display2_children(0,0,0);// KatNo,  UstKatID