Reputation:
I am facing one issue. I need to check value which should present within two column values using PHP and MySQL. I am explaining my table below.
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);
Here I am getting the message {"status":"Failed","msg":"Product is not available for this postcode"}
which is wrong because code 751010
is present within 751001-751030
. Here I need to check the user given value should be present within that two column.
Upvotes: 1
Views: 56
Reputation: 9
Well, Your query would should be this:
$sql="select * from db_postcode where ".$post_code." BETWEEN zip_from and zip_to";
Upvotes: 0
Reputation: 147266
Your compare is written the wrong way around, what you want is to check that $post_code
is between zip_from
and zip_to
:
$sql="select * from db_postcode where '$post_code' between zip_from and zip_to";
Note that this will only work if all zip_from
, zip_to
and $post_code
values are the same length, otherwise you will run into issues that in a string compare, 2 > 100000
. If they are not the same length, you should cast them to integer to compare them.
Upvotes: 1