仅选取最后一个数据库插入的结果


Only picks the last database inserted result

我得到了这个简单的东西,它基本上有效,但是它听起来有些不对,所以我得到了这个:

$text = $_GET['text'];
$sitechoose=mysql_query("SELECT * FROM site");
while($change=mysql_fetch_array($sitechoose)) {
    $o = $change['original'];
    $r = $change['changed'];
    $messages = str_replace($o, $r, $text);
}
echo messages;

所以替换的东西有效,但只替换最后一个 databse 结果的$o和$r,有什么想法吗?谢谢!

编辑:$text应该是微笑/坏话等...而在MySQL表中,原始将是微笑:)AMD 更改后将是

目前,您的$messages变量是一个简单的字符串。您需要将$messages变成一个数组。您的代码应如下所示:

$text = $_GET['text'];
$sitechoose = mysql_query("SELECT * FROM site");
$messages = array();
while ($change = mysql_fetch_array($sitechoose)) {
    $o = $change['original'];
    $r = $change['changed'];
    $messages[] = str_replace($o, $r, $text);
}
echo $messages;

分配给$messages[]会将一个新元素推送到数组的末尾。