2013-12-13 15 views
0

我的SQL任務PHP中的$查詢不適用於具有不同數量數值的值(例如,XXX和XXXX => 700和1100,800與1200和900和1300:PHP,MySQL:BETWEEN運算符不適用於數值數量不同的值

//Applying values from <form>: 
$pirmas = $_POST['ieskoti'] - 200; 
$antras = $_POST['ieskoti'] + 200; 

// So when $_POST['ieskoti'] is 800, 900, 1000 and 1100, this task is not working: 
$query = 'SELECT * FROM prekes WHERE prek_kaina BETWEEN "'. $pirmas .'" AND "'. $antras .'";'; 
$result = mysql_query($query); 

有了它完美的作品,因爲運營商之間用相同量的數字值的工作原理其他值:500和900,1000和1400等..

任何想法?

+1

是什麼'不working'的意思是,到底是什麼?你沒有得到預期的結果嗎?發生什麼或沒有發生? –

+0

認爲你的意思是'數字'而不是'數字'在你的文章中,現在aioros的答案是合理的imho;)這是一個字符串比較而不是比較數字(你打算) – DrCopyPaste

回答

5

嘗試刪除你的號碼周圍的引號,使他們ar e不解釋爲字符串:

$query = 'SELECT * FROM prekes WHERE prek_kaina BETWEEN '. $pirmas .' AND '. $antras .';'; 
4

您將範圍值用引號引起來,所以MySQl正在進行字符串比較。刪除數字值的引號。試試這個:

$query = 'SELECT * FROM prekes WHERE prek_kaina BETWEEN '. $pirmas .' AND '. $antras .';'; 
//        Double quotes removed^  ^^  ^
0
Please Try this, 
//Applying values from <form>: 
$pirmas = $_POST['ieskoti'] - 200; 
$antras = $_POST['ieskoti'] + 200; 

// So when $_POST['ieskoti'] is 800, 900, 1000 and 1100, this task is not working: 
$query = 'SELECT * FROM `prekes` 
      WHERE prek_kaina BETWEEN "'. $pirmas .'" AND "'. $antras .'"'; 
$result = mysql_query($query); 
相關問題