以下の解決策を探していましたが、これまでのところうまくいきませんでした。
「機能」という名前のテキスト領域に製品機能のリストがあるページがあります。これは、データベースのテーブルから入力されます。
ボタンをクリックすると、以下のコードが実行されます。コードはリスト内の各単語を取得し、「説明」フィールドにその単語が含まれているかどうかを確認し、含まれている場合はその単語を「機能」と呼ばれるフィールドに入れます。
これは問題なく動作しますが、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);
}
前もって感謝します!クリス