Manuela: MySQL und preg_replace

Beitrag lesen

Guten Morgen,

ich basteln mir gerade ein simples CMS-Script mit MySQL. bis jetzt sieht es so aus:

<?
//Datenbankverbindung
include "include/db.inc.php";

//Daten holen
$config = mysql_fetch_array (mysql_query("SELECT * from cms_config",$conn));
$src    = mysql_fetch_array (mysql_query("SELECT * from cms_pages WHERE pid ='".$_GET["pid"]."'",$conn));
if(!$src){$src = mysql_fetch_array (mysql_query("SELECT * from cms_pages WHERE pid ='index.php'",$conn));}

//Element ausgeben
function showElement($eid)
{
 global $conn;
 $element = mysql_fetch_array (mysql_query("SELECT * from cms_files WHERE fid = '".$eid."'",$conn));
 return "<img src="".$element["fsrc"]."" border=0 alt="".$eid.""/>";
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title><?echo $config["webname"];?></title>
</head>
<body>
<h3><?echo $src["ptitle"];?></h3>
<p>
<?
$suchmuster = "/[ELEMENT:(.*)]/";
$eresetzung = showElement("\1");
echo preg_replace($suchmuster, $eresetzung, $src["ptext"]);
?>
</p>
</body>
</html>

Es klaptt auch alles prima und genügt meinen Ansprüchen.
Bilder (Elemente) möchte ich über einen "Tag" [ELEMENT:123] im Text einfügen und dann ensprechende durch preg_replace erseten lassen.
Die Ersetzung funktioniert auch, allerdings wird der in der Funktion showElement("\1") übergebene Parameter \1 (ist eine ID eines Bildes in der DB) nicht in der DB gefunden - obwohl er da ist ... wenn ich in der Funktion manuell WHERE fid = '123' eingebe klappt alles prima ???
Hat der Parameter \1 ein falsches Format? Habe mit gettype() herausbekommen, dass es ein string ist und keine Zahl. Eine Umwandlung unter WAMPP (Win2000) mit settype() funktioniert nicht ...

Wer kann mir da helfen?

LG, Manu