首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列出分类ID - MySQL / PHP的Woocommerce产品

列出分类ID - MySQL / PHP的Woocommerce产品
EN

Stack Overflow用户
提问于 2015-01-28 11:40:02
回答 1查看 659关注 0票数 0

我正在使用一个MySQL查询来列出所有产品的addon变体(样本),我能够很好地做到这一点,并列出与其相关的产品。我的问题是列出产品类别id以及。

我没有正式的MySQL培训,所以任何关于性能等方面的帮助和建议都将是非常有价值的!

下面是我用来获取addon变体及其产品列表的代码,只需要获得这些产品的类别ID。

代码语言:javascript
复制
$prod_attributes_sql = 'SELECT DISTINCT wt.slug AS term_slug, wtr.term_taxonomy_id, wpp.post_title AS wpost_title, wt.term_id AS wpt_terms, cpt.term_id AS cpt_terms
    FROM '
. " {$wc_price_table->cat_price_table_name} cpt"
. ' RIGHT OUTER JOIN wp_terms wt ON cpt.term_id=wt.term_id'
. ' INNER JOIN wp_term_relationships wtr ON wt.term_id = wtr.term_taxonomy_id'
. ' INNER JOIN wp_posts wpp ON wtr.object_id = wpp.ID'
. ' RIGHT OUTER JOIN wp_term_taxonomy ttx on wt.term_id = ttx.term_id'
. ' WHERE ttx.taxonomy IN (\'' . implode("','", $slugsnews) . '\')'
. ' ORDER BY wt.name';
$prod_attributes = $wpdb->get_results($prod_attributes_sql) or die(mysql_error());

它输出插件变体的列表以及它们所关联的产品。但是我该如何包括这些产品的分类id呢?

如果需要添加任何进一步的解释或代码,请告诉我。

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-02 10:14:20

最后,我不得不更改查询以包含$term_id,使用下面的foreach获取条件:

代码语言:javascript
复制
        $term_id = array();
        foreach ($product_categories as $key => $category) {
            foreach ($category['terms'] as $term) {
                $term_id[] = $term->term_id;
            }
        }

并在我的sql中包括如下内容:

代码语言:javascript
复制
        $prod_attributes_sql = 'SELECT DISTINCT wt.slug AS term_slug, wt.name, ttx.taxonomy, wtr.term_taxonomy_id, wpp.post_title AS wpost_title, wt.term_id AS wpt_terms, cpt.term_id AS cpt_terms
            FROM '
        . " {$wc_price_table->cat_price_table_name} cpt"
        . ' RIGHT OUTER JOIN wp_terms wt ON cpt.term_id=wt.term_id'
        . ' INNER JOIN wp_term_relationships wtr ON wt.term_id = wtr.term_taxonomy_id'
        . ' INNER JOIN wp_posts wpp ON wtr.object_id = wpp.ID'
        . ' RIGHT OUTER JOIN wp_term_taxonomy ttx on wt.term_id = ttx.term_id'
        . ' WHERE cpt.term_id IN(' . implode(',', $term_id) . ')'
        . ' OR ttx.taxonomy IN (\'' . implode("','", $slugsnews) . '\')'
        . ' OR ttx.term_taxonomy_id = cpt.term_id'
        . ' ORDER BY wpp.post_title';
        $prod_attributes = $wpdb->get_results($prod_attributes_sql) or die(mysql_error());

这个很管用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28191363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档