如果选择匹配,则使用单词的PHP / SQL更新字段

时间:2013-10-03 14:18:12

标签: php sql arrays sql-update

我一直在寻找以下解决方案但到目前为止没有运气。

我有一个页面,其中包含一个文本区域中的产品功能列表,名为“features” - 这是从我的数据库中的表中填充的。

当我单击一个按钮时,运行下面的代码,代码执行的操作是获取列表中的每个单词,检查“description”字段是否包含该单词,如果是,则将该单词放入名为“功能”。

这样可以正常运行,但我有3,000种不同的“功能”和100,000种产品说明需要检查 - 所以它需要时间来运行并经常超时。

有人可以建议我如何加快速度吗?基本上逻辑是:

如果“description”包含“word”,则输入“word”

我在考虑将所有单词放在数组中,但我不知道如何确定数组中的哪些单词位于“description”中并返回此值。

我的desc_lookup表中存储了所有“功能”,用逗号分隔,因此可以很容易地将它们添加到数组中。

$features = explode("\n",$_POST["features"]);
$features = str_replace("\r","",$features);

foreach($features as $feature)
{
    $sql = "UPDATE `".$config_databaseTablePrefix."products` 
           SET features = CONCAT(features, '".$feature.",') WHERE `description` LIKE
           '%".database_safe($feature)."%'";

    database_queryModify($sql,$result);
}

提前致谢! 克里斯

1 个答案:

答案 0 :(得分:0)

如果我是你,我会在将产品输入数据库并将它们存储为单独的字段(或者可能在另一个表中)时进行此类关键字搜索。或者可能使用缓存系统,因此您不必每次都为每个产品执行此操作。