我一直在寻找以下问题的解决方案,但到目前为止还没有运气。
我有一个页面,在文本区域中有一个产品特性列表,名为“特性”——这是从我数据库中的一个表中填充的。
当我单击一个按钮时,下面的代码运行,代码所做的是获取列表中的每个单词,检查“描述”字段是否包含该单词,如果包含,则将该单词放入名为“功能”的字段中。
这工作正常,但我有 3,000 个不同的“功能”和 100,000 个产品描述要检查 - 所以运行需要花费时间并且经常超时。
谁能建议我如何加快速度?基本上逻辑是:
如果“描述”包含“单词”,则放入“单词”
我在考虑可能将所有单词放在一个数组中,但我不知道如何确定数组中的哪些单词在“描述”中并返回这个值。
所有“特征”都存储在我的 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);
}
提前致谢!克里斯