ホームページ > バックエンド開発 > PHPチュートリアル > PHP はどのようにして mysql データテーブルを自動的に分類しますか?

PHP はどのようにして mysql データテーブルを自動的に分類しますか?

WBOY
リリース: 2016-06-23 14:04:05
オリジナル
1153 人が閲覧しました

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':
}
}
これがあなたが望んでいることかどうかはわかりません。 。 。

substr($str,9,9); これは中国語の文字列であるためです。ブランドがたまたま 4 番目の漢字で始まる場合。次に、9 文字をインターセプトします。

foreach($brand_name as $key=> $item){
$name = substr($str,9,9);
switch($name){
case 'L'Oreal':
/ /do something;
$brand_...
実際、各タイトルはそれほど規則的ではありません。最初にブランドを走査し、次にブランドのない商品を走査し、それからブランド ID に変更します

次に、それを変更します。 foreach ループ内で。 IDのないものに遭遇した場合のクエリ。

商品名がイレギュラーな場合。次に、preg_match を使用して必要なデータをクエリします。あなたはそのロジックを知っているはずです。あなたならコーディングのことはできると思います

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート