我如何调整此方法以使括号生效?
if (mysql_num_rows($printPricealertsdata) < 5 && ($_POST['pricetype'] == "pricebelow" && $_POST['price'] < $marketdata['priceusd']) OR ($_POST['pricetype'] == "priceabove" && $_POST['price'] > $marketdata['priceusd'])) {
echo "success";
}else{
echo "fail";
}
答案 0 :(得分:0)
试试这个(不在每个条件周围放置括号):
if(mysql_num_rows($printPricealertsdata) < 5 && $_POST['pricetype'] == "pricebelow" && $_POST['price'] < $marketdata['priceusd']) OR $_POST['pricetype'] == "priceabove" && $_POST['price'] > $marketdata['priceusd']) {
echo "success";
}else{
echo "fail";
}
答案 1 :(得分:0)
如果你告诉我们你想要什么,以及你的代码得到了什么会更容易。但是,既然你让我猜,我认为你有时打印“成功”,即使行数是5或更多;你不想要那个。如果这是问题,你需要围绕你的OR条款括号,因为&amp;&amp;紧紧联系起来。 Check the manual表示不同运营商的优先级。
顺便说一句,你可以使用新的行和缩进来使你的代码更具可读性:
if ( mysql_num_rows($printPricealertsdata) < 5
&& (
($_POST['pricetype'] == "pricebelow" && $_POST['price'] < $marketdata['priceusd'])
OR
($_POST['pricetype'] == "priceabove" && $_POST['price'] > $marketdata['priceusd'])
)) {
echo "success";
} else {
echo "fail";
}