使用PHP中的str_replace更新SQL内容与其他SQL条目的超链接

时间:2015-07-02 20:42:10

标签: php mysql sql str-replace

我正在处理字典类型的SQL表。一旦我完成它,我就准备好PHP脚本,用html超链接标签更新文本。该脚本现在工作正常。但是,某些字典条目是短语并包含多个单词,因此内容不具有与之关联的正确链接。例如,如果我运行我目前拥有的脚本,它会爆炸整个定义并分别链接心脏和攻击。虽然我希望得到“心脏病发作”这句话。联的。

WORD:心肌梗塞 定义:心脏病发作

有关如何做到这一点的任何建议?
这是我当前的脚本。

$def = $original['def'];
$explode_string = explode(" ",$def);
$explode_count = count($explode_string);
$compare_count = 0;
if($explode_count>0)
{
    while($compare_count<=$explode_count)
    {
        $sql="SELECT word
             FROM dictionary
             WHERE word='{$explode_string[$compare_count]}'";

        $result=mysql_query($sql);
        if(! $result )
        {
          die('Could not get data: ' . mysql_error());
        }
        $row = mysql_fetch_array($result);
        if($row)
        {
            if($explode_string[$compare_count]!="{$original['word']}")
            {
            $replace="<a href=\'http://www.medicresource.com/medicaldictionary/search.php?word=".$explode_string[$compare_count]."\'>{$explode_string[$compare_count]}</a>";
            $def = str_replace($explode_string[$compare_count], $replace, $def);
            }

        }
        ++$compare_count;
    }
}
$update_sql = "UPDATE dictionary SET def='$def' WHERE id='{$original['id']}'";

1 个答案:

答案 0 :(得分:0)

我认为更好的方法是使用foreach

$def = "Heart attack";
$explode_string = explode(" ",$def);
$explode_count = count($explode_string);

if($explode_count>0)
{
    foreach($explode_string as $word)
    {
        $sql="SELECT word
             FROM dictionary
             WHERE word='" . $word . "'";

        $result=mysql_query($sql);
        if(! $result )
        {
          //die will kill the script
          echo('Could not get data from query : ' . $sql . " error: " . mysql_error());
        }
        $row = mysql_fetch_array($result);
        if($row)
        {
            $replace="<a href=\'http://www.medicresource.com/medicaldictionary/search.php?word=". $word ."\'>" . $word ."</a>";
            $def = str_replace($word, $replace, $def);
        }
    }
}
$update_sql = "UPDATE dictionary SET def='$def' WHERE id='" . $original['id'] . "'";