I';我的php代码有问题


I've got issues with my php code

首先,我想给出代码;

 public function productPrice($id) {
            $productPrice = $this->db1->query("SELECT price FROM oc_product WHERE product_id='{$id}'");
            $productPrice = $productPrice->fetch(PDO::FETCH_NUM);
            foreach ($productPrice as $a) {
                $productOnSale = $this->db1->query("SELECT price FROM oc_product_special WHERE product_id='{$a}'");
                $productOnSale = $productOnSale->fetch(PDO::FETCH_NUM);
                if (is_array($productOnSale) || is_object($productOnSale)) {
                    foreach ($productOnSale as $b) {
                    if ($a == $b) {
                        $a = explode(".", $a);
                        return $a[0] . " TL";
                    } else {
                        $a = explode(".", $a);
                        $b = explode(".", $b);
                        return "<strike>".$a[0]." TL</strike>'n".$b[0]." TL";
                    }
                }
            }
            }
        }

else时一切正常但它并没有给我if,即使$a和$b的值是正确的。错误行是:foreach($productOnSale为$b){

如果不使用if (is_array($productOnSale) || is_object($productOnSale))语句,它会在第38行为foreach()提供Invalid参数:foreach($productOnSale as$b)

在第二次查询中将WHERE product_id更改为WHERE product_price