PHP,MySQL:BETWEEN运算符不能处理不同数量的值


PHP, MySQL: BETWEEN operator not working with values with different amount of numbers

我在PHP中的SQL任务$query不适用于具有不同数量的值(例如XXX和XXXX=>700和1100800、1200和900和1300:

//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);

对于其他值,它可以完美地工作,因为BETWEEN运算符可以处理相同数量的值:500和900、1000和1400等

有什么想法吗?

试着去掉数字周围的引号,这样它们就不会被解释为字符串:

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

您将用引号括起范围值,因此MySQl正在进行字符串比较。删除数值的引号。试试这个:

$query = 'SELECT * FROM prekes WHERE prek_kaina BETWEEN '. $pirmas .' AND '. $antras .';';
//                                Double quotes removed ^            ^    ^            ^
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);