2 つのテーブルがあります
製品データテーブル商品: タイトル、製品タイトル。ブランド、ブランドID
ID タイトル ブランド
1 化粧品 ロレアル No. 65 1
2 化粧品 ウェン・ビクアン 75
3 化粧品 ヤリナ 45
4 化粧品 シャネル 45 2
5 化粧品 オウ・シーマン 22
ブランドリスト ブランド
ID 名
1 ロレアル
2 シャネル
3 ウェン・ビクアン
4 ヤリナ
5 オウ・シマン
PHP ステートメントと SQL ステートメントを使用して、商品テーブル内のブランド ID のない番号のブランド ID を自動的に取得します。たとえば、ブランド値です。製品テーブルの id2 の後ろにあるのは 3 です。方法がわかりません。誰かアイデアを教えてもらえますか?実際、ブランド リストには何百ものブランドがあり、製品名にはブランド名が含まれている必要があります。
商品テーブルのタイトルを調べて、ブランドに名前が含まれているかどうかを確認します。含まれている場合は、ID を書き留めて、それをブランド値として新しい配列に入れます。タイトルの元のポスター 試してみてください
効率ではなく機能性だけを必要とする愚かな方法を使用しました。 。
ORM を勉強してください
それは愚かな方法です。まず、substr を使用して 3 ~ 6 桁の文字列をインターセプトします。 「L'Oreal」や「Chanel」などのブランド名を取得し、ブランド テーブル内の対応する brand_id をクエリします。 。前提は。 3 ~ 6 桁の文字列がブランド名になります。
substr($str,9,9); これは中国語の文字列であるためです。ブランドがたまたま 4 番目の漢字で始まる場合。次に、9 文字をインターセプトします。
foreach($brand_name as $key=> $item){
$name = substr($str,9,9);
switch($name){
case 'L'Oreal':
/ /何かをします;
$brand_name[$key]['brand_id'] = 3;
case 'xxx':
}
}
これがあなたが望んでいることかどうかはわかりません。 。 。
foreach($brand_name as $key=> $item){
$name = substr($str,9,9);
switch($name){
case 'L'Oreal':
/ /do something;
$brand_...
実際、各タイトルはそれほど規則的ではありません。最初にブランドを走査し、次にブランドのない商品を走査し、それからブランド ID に変更します
商品名がイレギュラーな場合。次に、preg_match を使用して必要なデータをクエリします。あなたはそのロジックを知っているはずです。あなたならコーディングのことはできると思います