我一直在寻找以下解决方案但到目前为止没有运气。
我有一个页面,其中包含一个文本区域中的产品功能列表,名为“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);
}
提前致谢! 克里斯
答案 0 :(得分:0)
如果我是你,我会在将产品输入数据库并将它们存储为单独的字段(或者可能在另一个表中)时进行此类关键字搜索。或者可能使用缓存系统,因此您不必每次都为每个产品执行此操作。