Problem mit function

Flashii123

Mitglied
Hallo zusammen,

Ich habe ein kleines Forum und wollte dort nun BBcodes einbringen doch ich habe da ein Problem und zwar:
Fatal error: Cannot redeclare ...

Ich post hier mal den Quell code :)

Wäre echt suppa wenn ihr mir helfen könntet
Code:
<?php
$tbl_namea="sonstiges_answer"; 

$sql2="SELECT * FROM $tbl_namea WHERE question_id='$id'";
$result2=mysql_query($sql2);

while($rows=mysql_fetch_array($result2)){
?>
<?
	error_reporting(E_ALL | E_NOTICE);

function parseBBCode2HTMLx( $bbx )
{
	    $bbx = preg_replace('/\[img\](.*?)\[\/img\]/', '<img src="$1" width="430" height="350">', $bbx);
    $bbx = preg_replace('/\[b\](.*?)\[\/b\]/', '<b>$1</b>', $bbx);
    $bbx = preg_replace('/\[i\](.*?)\[\/i\]/', '<i>$1</i>', $bbx);
    $bbx = preg_replace('/\[color=([[:alnum:]]{6}?).*\](.*?)\[\/color\]/', '<font color="#$1">$2</font>', $bbx);
    $bbx = preg_replace('/\[url=([^ ]+).*\](.*)\[\/url\]/', '<a href="$1">$2</a>', $bbx);

    $bbx = preg_replace('/\n/', "<br/>\n", $bbx);

    return $bbx;

}


$formatiertx = parseBBCode2HTMLx( $rows['a_answer']);
	
	
	
	?>
<table  align="center" width="430" border="0"  cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr >
<td ><table align="center" width="100%" border="0" cellpadding="3" cellspacing="1" bordercolor="1" bgcolor="#FFFFFF">

<tr>
<td  bgcolor="#111111"><strong><? echo $rows['a_name']; ?> hat geantwortet:</strong></td>
</tr>
<tr >
<td bgcolor="#111111" ><? echo $formatiertx; ?></td>
</tr>



<tr align="center"></tr></table></td>
<br>

Gruß
 
Wenn du eine Funktion im Rumpf einer Schleife deklarierst, wird sie bei jedem Durchlauf neu deklariert – was nicht erlaubt ist.
 
Könnte mir evt eine zeigen oder genau erklären wie ich das mache?

Ich komme damit überhaupt nicht klar :(

Wäre schönw enn mir einer helfen könnte :)

Gruß
 
einfach die Funktion vor dem Keyword "while" definieren.
PHP:
<?php

error_reporting(E_ALL | E_NOTICE);

$tbl_namea="sonstiges_answer"; 

function parseBBCode2HTMLx( $bbx )
{
	    $bbx = preg_replace('/\[img\](.*?)\[\/img\]/', '<img src="$1" width="430" height="350">', $bbx);
    $bbx = preg_replace('/\[b\](.*?)\[\/b\]/', '<b>$1</b>', $bbx);
    $bbx = preg_replace('/\[i\](.*?)\[\/i\]/', '<i>$1</i>', $bbx);
    $bbx = preg_replace('/\[color=([[:alnum:]]{6}?).*\](.*?)\[\/color\]/', '<font color="#$1">$2</font>', $bbx);
    $bbx = preg_replace('/\[url=([^ ]+).*\](.*)\[\/url\]/', '<a href="$1">$2</a>', $bbx);

    $bbx = preg_replace('/\n/', "<br/>\n", $bbx);

    return $bbx;

}

$sql2="SELECT * FROM $tbl_namea WHERE question_id='$id'";
$result2=mysql_query($sql2);

while($rows=mysql_fetch_array($result2)){


$formatiertx = parseBBCode2HTMLx( $rows['a_answer']);
	
	
	
	?>
<table  align="center" width="430" border="0"  cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr >
<td ><table align="center" width="100%" border="0" cellpadding="3" cellspacing="1" bordercolor="1" bgcolor="#FFFFFF">

<tr>
<td  bgcolor="#111111"><strong><? echo $rows['a_name']; ?> hat geantwortet:</strong></td>
</tr>
<tr >
<td bgcolor="#111111" ><? echo $formatiertx; ?></td>
</tr>



<tr align="center"></tr></table></td>
<br>

P.S.: error_reporting gehört in der Regel an den Anfang einer Datei.
 
Zurück