Hi!
Ist das so nicht richtig?
$smilie = ":)";
$smilie = ";)";
$smilie = ":(";
Du überschreibst hier ja jedesmal wieder den Inhalt von $smilie.
$link = "<img src="http://www.cs-erweiterungen.de/images/smilies/smile.gif">";
$link = "<img src="http://www.cs-erweiterungen.de/images/smilies/wink.gif">";
$link = "<img src="http://www.cs-erweiterungen.de/images/smilies/frown.gif">";
Genau wie du hier jedesmal wieder den Inhalt von $link überschreibst.
Vielleicht solltest du ein Array einsetzen..?
$kommentar = str_replace($smilie, $link, nl2br(htmlspecialchars($row["Kommentar"])));
echo "<div id="comment_text">" . $kommentar . "</div></div>\n";
Warum zweimal das schliessende </div>?
Schöner Gruß,
rob