PHP在两个字符串之间选择

时间:2013-06-24 11:02:32

标签: php mysql database select between

我有以下mysql表:

表名:items

item_no qty
1l1000bk 1
1l1020be 2
1l900bk 12
1l820be 19

创建提交到包含以下PHP代码的其他页面的form后:

$from = $_POST['from'];
$to = $_POST['to'];

$length = max(strlen($from), strlen($to)); 

$query6 = "SELECT * FROM items WHERE SUBSTRING(item_no, 1, ".$length.")   BETWEEN '".$from."' AND '".$to."' ORDER BY item_no Desc";

$result6 = mysql_query($query6);
if(!$result6){
    mysqli_error();
    exit();
}



if(mysql_num_rows($result6)>0){
$num6 = mysql_num_rows($result6);

for($i=0;$i<$num6;$i++){    

$row6 = mysql_fetch_assoc($result6);
echo $row6['item_no']."</br>";
}
}

输出完全错误,根据select statment ..我需要输出搜索的item_no作为降序! 这里显示的是:

1l900bk
1l820be
1l1020be
1l1000bk

1l1000如何小于1l900?它似乎只比较第三个字符?..如何确保它比较完整的字符串?

请帮助!

2 个答案:

答案 0 :(得分:0)

         SELECT column_name(s)
         FROM table_name
         WHERE column_name BETWEEN value1 AND value2;

答案 1 :(得分:0)

这是因为它被排序为字符串,而不是整数。 如果你想排序是,你应该使shure所有数字是相似的:所以如果你有1000和900,使用0900.那么它将排序好。