Aşağıdaki gibi değiştirdim kodları:
$desen = preg_match_all('#\[yazar\](.*?)\[\/yazar\]#si', $m_icerik, $veri);
for($i = 0; $i <= count($veri[1]); $i++)
{
$yazar = $veri[1][$i]; // yazarımınızın adı
// veritabanında yazarı arıyoruz
$yazarbul = mysql_fetch_assoc(mysql_query("SELECT * FROM yazarlar WHERE y_adi = '$yazar'"));
$yazarID = $yazarbul['y_id'];
// bulduğumuz veriyi değiştireceğiz.
$degistir = str_replace("[yazar]".$yazar."[/yazar]", "$yazar", $m_icerik);
echo $degistir;
}
Şimdilik yazdırıp bakıyorum sonuca, çıktı istediğim gibi değil. Mesela
[yazar]Namık Kemal[/yazar] falanı yazdı. [yazar]Şinasi[/yazar] şöyle dedi.
gibi bir veriyi üç kez yazıyor ve önce Namık Kemal' i linkliyor, sonra Şinasi' yi; ama üçüncü yazımda ikisini de linklemiyor. :/