2016-09-10 6 views
0

データベースの内容が検索条件($ musage)と等しいかそれ以上の場合は、結果にデータを選択してください。ロジックが必要です。クエリで構造が混乱しています

* -1値は「無制限」を意味している

データベースのデータは、「すべての正の整数よりも小さく、実際に」、-1のときの問題があるが、私のデータベースには、すべての数よりも大きいです。選択されたクエリは、結果にデータベースのコンテンツを取得するために実行され、どのようにデータベースコンテンツが-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) 
... 

忘れてはいけない括弧AND ORよりも大きい優先順位を持っています。

関連する問題