我正在处理字典类型的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']}'";
答案 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'] . "'";