首先,我想提供代码;
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 as $ b){
如果不使用if (is_array($productOnSale) || is_object($productOnSale))
语句,它会给我第38行的foreach()提供的无效参数:foreach($ productOnSale as $ b)
答案 0 :(得分:0)
在第二个查询中将 WHERE product_id 更改为 WHERE product_price