echo "<select size=\"1\" name=\"catid\">"; 
        $al = $db->sql_query("select catid, title from ".$prefix."_stories_cat where catid='$catid'"); 
        while (list($catid, $title)=$db->sql_fetchrow($al)) { 
            echo "<option value=\"$catid\">$title</option>"; 
        } 
         
        $al = $db->sql_query("select catid, title from ".$prefix."_stories_cat WHERE catid<>$catid ORDER BY title"); 
        while (list($catid, $title)=$db->sql_fetchrow($al)) { 
            echo "<option value=\"$catid\">$title</option>"; 
        }
        echo "</select>";
gerekli düzenlemeyi yaptım kodunda ilkinde selected yerine ilk olarak varolan kategorisini yazdırırsan o seçili gelir. ikinci döngün içinde sqlde yaptığım değişiklik varolan kategorinin yazılmamasını sağlar.denemedim ama muhtemelen çalışıyor.
Tekrar düzenleme yaptım sqlin içinde kullandığın $catid değişkeninin adını daha farklı yap çünkü döngülerdede aynı değişkeni kullanıyosn bu yuzden 2.ci sorguda yanlış $catid sorguluycak.