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

标签 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 中。在这里,我需要检查用户给定的值是否应该出现在这两列中。

最佳答案

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

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

请注意,这仅在所有 zip_fromzip_to$post_code 值长度相同时才有效,否则您会遇到问题在字符串比较中,2 > 100000。如果它们的长度不同,则应将它们转换为整数以进行比较。

关于php - 无法使用 MySQL 查询检查两列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54109602/

相关文章:

php - 如何阻止 MySQL 错误输出到浏览器以包含数据库密码?

php - 日期字段的行未显示在 Grocery 表中

php - 在数据库中用foreach循环保存多维数组

python - 将 SQLAlchemy ORM 用于非主键、唯一、自动递增的 id

php - 如何在 PHP 中编写检查访问者 IP 地址的功能?

php - 使用 PDO 在查询中使用传递的变量

MySQL WHERE 子句中的多个表

MySQL InnoDB 主键多列

php - 显示重复记录

php - 这是在 codeigniter 3.1.5 中发布和处理数据的最佳方式