【问题标题】:Query Two Woocommerce Standard Tables查询两个 Woocommerce 标准表
【发布时间】:2020-09-10 20:05:27
【问题描述】:

答案:设法在下面回答了我自己的问题,仍然欢迎反馈。

问题:我的INNER JOIN 声明有问题。我的代码只适用于一张表。

我的目标是根据用户输入表单的邮政编码从woocommerce_shipping_zones 中查询出zone_name,然后作为@ 传递给我的查询函数987654324@ 用于woocommerce_shipping_zone_locations 表。尽管我正在检查现有的woocommerce_shipping_zone_locations 表和woocommerce_shipping_zones 中的匹配zone_id,但我仍然难以获得结果。

非常感谢任何帮助。

    <?php
        if(isset($_POST['checkZip']) && isset($_POST['submittedZip'])) {
            //is the cast to int needed?
            $submittedZip = (int)$_POST['submittedZip'];
            debug_to_console($submittedZip);
            prntPage($submittedZip);
        }

        //query for pulling in shipping data
        function prntPage($submittedZip) {
            global $wpdb;
            // The SQL query
            if($submittedZip) {
                $results =  $wpdb-> get_results("SELECT {$wpdb->prefix}woocommerce_shipping_zone_locations.location_code, {$wpdb->prefix}woocommerce_shipping_zones.zone_name ".
                            "FROM {$wpdb->prefix}woocommerce_shipping_zone_locations ".
                            "WHERE location_code = '$submittedZip' ".
                            "INNER JOIN {$wpdb->prefix}woocommerce_shipping_zones ".
                            "ON {$wpdb->prefix}woocommerce_shipping_zone_locations.zone_id = {$wpdb->prefix}woocommerce_shipping_zones.zone_id ");
                // Loop though rows data
                foreach( $results as $row ){
                    print_r($row);
                    debug_to_console($row);
                }
            }
        }

        //function to print to console, used for debugging php
        function debug_to_console($data) {
            $output = $data;
            $typeOfTest = getType($data);
            if (is_array($output))
                $output = implode(',', $output);
        
            echo "<script>console.log('Debug Objects: " . $output . ", Type: " . $typeOfTest . "' );</script>";
        }
    ?>

【问题讨论】:

    标签: php mysql wordpress woocommerce


    【解决方案1】:

    以下导致它工作。必须在 WHERE 语句之前进行连接。

          
            //query for pulling in shipping data
            function prntPage($submittedZip) {
                global $wpdb;
                // The SQL query
                if($submittedZip) {
                    $results =  $wpdb-> get_results("SELECT {$wpdb->prefix}woocommerce_shipping_zones.zone_name ".
                                "FROM {$wpdb->prefix}woocommerce_shipping_zone_locations ".
                                "INNER JOIN {$wpdb->prefix}woocommerce_shipping_zones ".
                                "ON {$wpdb->prefix}woocommerce_shipping_zone_locations.zone_id = {$wpdb->prefix}woocommerce_shipping_zones.zone_id ".
                                "WHERE location_code = '$submittedZip' ");
                                
                    // Loop though rows data
                    foreach( $results as $row ){
                        print_r($row);
                        //debug_to_console($row);
                    }
                }
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多