woocommerceのすべての商品カテゴリを別々のmysqlテーブルに取得するにはどうすればよいですか?Woocommerceの製品カテゴリをmysqlの別のテーブルに入れます
0
A
答えて
0
このコードを使用してください。注:同じテーブルの異なる行からいくつかのデータを取得しようとしているようです。私は、MySQLのクエリで特定の解決策を見つけたその3レベルの深さのカテゴリためではないbcoz
$sql = "SELECT p.id, p.post_title, p.guid, p.post_type, m.meta_key, m.meta_value, meta_sp.meta_value as sale_price, meta_ap.meta_value as additional_price
FROM wp_posts p
INNER JOIN wp_postmeta m
INNER JOIN wp_postmeta meta_sp ON p.id=meta_sp.post_id
AND meta_sp.meta_key='sale_price'
INNER JOIN wp_postmeta meta_ap ON p.id=meta_ap.post_id
AND meta_ap.meta_key='additional_price'
WHERE p.id=m.post_id
AND m.meta_key='_rentable' AND m.meta_value='yes'
";
0
さて私は、コードの方法を使用しています。その動作し、テストされたコード。
$all_categories = get_categories(array("taxonomy" => "product_cat", "parent" => 0, "show_count" => true));
foreach ($all_categories as $cat) {
$category_id = $cat->term_id;
$sub = get_categories(array("taxonomy" => "product_cat", "parent" => $category_id));
$wpdb->query($wpdb->prepare("INSERT INTO product_category(cat_id, cat_name, parent_id)
VALUES (%d, %s, %d)", array($category_id, $cat->name, $cat->category_parent)));
if(!empty($sub)){
foreach($sub as $subcat){
if($subcat->category_parent != ''){
$subcatid = $subcat->term_id;
$wpdb->query($wpdb->prepare("INSERT INTO product_category(cat_id, cat_name, parent_id)
VALUES (%d, %s, %d)", array($subcatid, $subcat->name, $subcat->category_parent)));
}
$thirdlevel = get_categories(array("taxonomy" => "product_cat", "parent" => $subcatid));
if(!empty($thirdlevel)){
foreach($thirdlevel as $thirdcat){
if($thirdcat->category_parent != ''){
$lastcatid = $thirdcat->term_id;
$thirdarray = array('cat_id'=> $lastcatid, 'cat_name'=>$thirdcat->name, 'parent_id'=> $thirdcat->category_parent);
$wpdb->query($wpdb->prepare("INSERT INTO product_category(cat_id, cat_name, parent_id)
VALUES (%d, %s, %d)", array($lastcatid, $thirdcat->name, $thirdcat->category_parent)));
}
}
}
}
}
}
これらのコードの後に、このクエリを使用して新しいテーブルからすべてのデータを取得できます。
は、cat2name AS CAT2、t2.cat_name AS t2.cat_id LEFTはAS PRODUCT_CATEGORY JOIN T1 AS PRODUCT_CATEGORY FROM lev4 AS LEV3、t3.cat_name AS t3.cat_id、lev1name AS LEV1、t1.cat_name AS t1.cat_id SELECT t2 ON t2.parent_id = t1.cat_id LEFT JOIN product_category AS t3 ON t3.parent_id = t2.cat_id
いいえ、このようにはなりません。私はそのアレイ ( [first_categoryid] => 88 [first_category_name] =>名刺 ) アレイ ( [second_categoryid] => 98 [second_category_name] =>署名 [parent_categoryid] => 88 ようにしたいです) アレイ( [second_categoryid] => 99 [second_category_name] =>標準 [parent_categoryid] => 88 ) アレイ( [second_categoryid] => 101 [second_category_name] =>のUI tra厚い [parent_categoryid] => 88 ) –
こんにちはUser42!それは動作していない、その私のエラーを返すMySQLは、空の結果セット(つまり、ゼロ行)を返しました。 –