我有一个select查询,我想检查一下,如果我的数据库表中的sensorValue数不在max和min之间且状态等于0,则回显一条消息。
我做了一些不能完全按照我的意愿工作的东西。 代码如下
//ALERT SYSTEM
$query2 = mysql_query("SELECT username, typeValue, datetime FROM sensors WHERE sensorValue < min OR sensorValue > max AND status='0'");
while($row = mysql_fetch_array($query2))
{
if($username==$row['username'])
{
$alert_message= " <b><font color=red><p align='center'>You Have Health Problem with Your ".$row['typeValue']." at ".$row['datetime']."</font></b>";
$link_address = "viewsensordata.php?view=".$row['username'];
?>
<a href="<?php echo $link_address;?>"> <?php echo $alert_message; ?> </a>
<?php
}
}
代码有什么问题,如果状态为1
,它仍然会回显消息答案 0 :(得分:6)
我担心你必须加上一个括号:
SELECT username, typeValue,
datetime FROM sensors
WHERE (sensorValue < min OR sensorValue > max)
AND status='0'
这里的“问题”是“和”和“或”具有优先权,如果我没有错,你一直在做的是“sensorValue&lt; min或(sensorvalue&gt; and status ='0') “
答案 1 :(得分:1)
你需要括号:
SELECT username, typeValue, datetime FROM sensors WHERE
(sensorValue < min OR sensorValue > max)
AND status='0'