无法使用MySQL查询检查两列中的值

时间:2019-01-09 11:56:57

标签: php mysql

我正面临一个问题。我需要使用PHP和MySQL检查应该在两个列值中显示的值。我正在解释下面的表格。

    id      zip_from               zip_to

     1        751001                751030

db_postcode:

$post_code='751010';
$sql="select * from db_postcode where zip_from >='".$post_code."' and zip_to='".$post_code."'";
$sqlpin=mysqli_query($conn,$sql);
if (mysqli_num_rows($sqlpin) > 0) {
    $data=array("status"=>"Success","msg"=>"Product is available for this postcode");
}else{
    $data=array("status"=>"Failed","msg"=>"Product is not available for this postcode");
}
echo json_encode($data);

在这里,我收到消息{"status":"Failed","msg":"Product is not available for this postcode"},这是错误的,因为751010中存在代码751001-751030。在这里,我需要检查用户给定的值是否应该出现在这两列中。

2 个答案:

答案 0 :(得分:1)

您的比较写错了方法,您想要检查$post_code是否在zip_fromzip_to之间:

$sql="select * from db_postcode where '$post_code' between zip_from and zip_to";

请注意,这仅在所有zip_fromzip_to$post_code的值都相同的情况下才有效,否则会遇到字符串比较{{1} }。如果它们的长度不同,则应将它们转换为整数以进行比较。

答案 1 :(得分:0)

好吧,您的查询应该是这样:

$sql="select * from db_postcode where ".$post_code." BETWEEN zip_from and zip_to";