2016-09-10 87 views
0

我的查询是做比较数据库的数据,如果数据库内容等于或大于搜索条件($肌肉),然后选择数据结果。逻辑需求,查询结构混淆

* -1是一种价值意味着“无限”

的问题是,当数据库中的数据为-1,“事实上,它比每一个正整数小”,但在我的数据库,它比所有的数字更大。执行select查询将数据库的内容导入结果,当数据库内容等于-1时如何才能控制情况?

这里是我的代码:

$device = $_POST['device']; 
$provider1 = $_POST['provider1']; 
$plantype = $_POST['plantype']; 
$dusage = $_POST['dusage']; 
$cusage = $_POST['cusage']; 
$musage = $_POST['musage']; 
//default query 
$MSGQuery = " plan.`MSG` >= $musage "; 
//when search criteria is unlimited 
if($musage == 'Unlimited'){ 
    $MSGQuery = " plan.`MSG` = -1 "; 
}//when search criteria is 0 
else if ($musage == 0){ 
    $MSGQuery = " plan.`MSG` >= -1 "; 
} 
else { 
    $MSGQuery = " plan.`MSG` >= $musage "; 
} 
echo $planquery=" 
        SELECT plan.*, details.* FROM plan 
        LEFT JOIN details ON plan.`Name` = details.`Name` 
        WHERE plan.`Phone` = '$device' 
        AND plan.`SIMTYPE` = '$plantype' 
        AND plan.`DATA` >= $dusage 
        AND plan.`CALL` >= $cusage 
        AND $MSGQuery "; 
$planresult=mysql_query($planquery) 
    or die ("Query to get data from firsttable failed: ".mysql_error()); 
while ($prow = mysql_fetch_assoc($planresult)) { 

回答

0

使用条件:

... 
AND (plan.`DATA` >= $dusage OR plan.`DATA` = -1) 
... 

,因为别忘了括号,并具有比或更高的优先级。