Bu şekilde de olmadı. Son söylediğin yöntem performanslı olur mu? 500 kelimelik bir yazıyı -diyelim ki 250 yazar var- 250 kez taramak?..

Ek Olarak:

Ek Olarak: İstediğim şey şu şekilde oldu:
// Yazarları bulup ayrıştıralım
$deger = '[yazar]Namık Kemal[/yazar] falanı yazdı. [yazar]Şinasi[/yazar] filanı yazdı.';
preg_match_all('#\[yazar\](.*?)\[/yazar\]#', $deger, $sonuc);

// Dizi İçerisinde yazarlar
$yazarlar = $sonuc[1];

// Replace edilecek değerler ve sonuçları
$yazarBulArray = $sonuc[0];
$yazarDegistirArray = array();

// Şimdi döngüye sokup tek tek kontrol edelim
foreach ($yazarlar as $yazar){
$query = mysql_query("SELECT * FROM yazarlar WHERE yazar_adi = '$yazar'");
if (mysql_affected_rows()){
$row = mysql_fetch_object($query);
$yazarDegistirArray[] = ''.$yazar.'';
}
}

// Değiştirme işlemini gerçekleştir
$deger = str_replace($yazarBulArray, $yazarDegistirArray, $deger);

// Çıktıyı ekrana yazdır
echo $deger;


Tayfun Erbilen' e teşekkür ediyorum. ;)