2015-09-04 185 views
-1
SELECT * FROM table name 
where property_type='residential' and lp_dol BETWEEN '1' and '450000' 
and cross_st='city name' 

我想搜索属性值,如1至450,000之间的价格在像任何城市名称的城市。MySQL查询返回不正确的结果

但现在表示的范围(1 - 450000)的值与上述价格范围等价格-1000390一些结果,(一些结果不是所有


<?php $mydata = array(); 
    if($protype_se!="" && $protype_se!="0") { 
    $mydata[] = "property_type='$protype_se'"; 
} 
if($protype_city !="") { 
    $mydata[] = "cross_st='$protype_city'"; 
} 
if($protype_from !="" && $protype_to !="") { 
    $mydata[] = "lp_dol BETWEEN $protype_from and $protype_to"; 
}elseif($protype_from =="" && $protype_to !=""){ 
    $mydata[] = "lp_dol BETWEEN $protype_cust and $protype_to"; 
} 
if($protype_bed !="") { 
    $mydata[] = "br >='$protype_bed'"; 
}if($protype_baths !="") { 
    $mydata[] = "bath_tot >='$protype_baths'"; 
} 

if($protype_pstyle !=""&& $protype_pstyle !="Att/Row/Twnhouse") { 
    $mydata[] = "style='$protype_pstyle'"; 
}elseif($protype_pstyle !="" && $protype_pstyle =="Att/Row/Twnhouse"){ 

    $mydata[] = "town='$protype_pstyle'"; 
} 
if($protype_gtype !="") { 
    $mydata[] = "gar_type='$protype_gtype'"; 
} 
if($protype_pool !="") { 
    $mydata[] = "pool='$protype_pool'"; 
} 
if($protype_fplace !="") { 
    $mydata[] = "fpl_num='$protype_fplace'"; 
} 
if($protype_for !="") { 
    $mydata[] = "s_r='$protype_for'"; 
} 
if($protype_gmin!="" && $protype_gmax!="") { 
    $mydata[] = "gross_texes BETWEEN '$protype_gmin' and '$protype_gmax'"; 
} 
if($protype_lmin!="" && $protype_lmax!="") { 
    $mydata[] = "land_size BETWEEN '$protype_lmin' and '$protype_lmax'"; 
} 
if($protype_pmin!="" && $protype_pmax!="") { 
    $mydata[] = "price_sqft BETWEEN '$protype_pmin' and '$protype_pmax'"; 
}if($protype_se!="" && $protype_se=="0") { 
    $mydata[] = "lp_dol BETWEEN '$protype_cust' and '$protype_end'"; 
} 
     $quer = "SELECT * FROM listing_featured_property"; 
$sql = $quer; 
    if (count($mydata) > 0) { 
    $sql .= " where " . implode(' and ', $mydata)." order by lp_dol DESC LIMIT $offset, $limit"; 
} 

    ?> 
+1

请编辑您的问题并添加表格定义,如'SHOW CREATE TABLE'所示。 – VolkerK

+0

加上关于php和mysql的示例数据和版本信息。 – VolkerK

+0

请稍候我在这里更新我的php代码... – avktech

回答

0

如果lp_dol是INTEGER数据类型的你需要排除单引号

SELECT * FROM table name 
where property_type='residential' and lp_dol BETWEEN 1 and 450000 and cross_st='city name' 
+0

不知道为什么这是投票 – Strawberry

+0

他们不检查只是看到其他投票和其他人做同样的。因为我100%肯定以上我的代码工作100% –

-1

请使用

SELECT * FROM table name where property_type='residential' and (lp_dol>= '1' and lp_dol<='450000') and cross_st='city name' 

我希望这肯定会为你工作,因为你需要价值之间,那么它也为你工作。

+0

这个答案在功能上与原来的一样,并遭受同样的缺陷 – Strawberry

+0

我的亲爱的朋友你的代码不工作.... – avktech

+0

我可以问你的价值在integar或者上面的代码检查小于或者大于那么正在处理整数值。请检查您的价值和使用后。 –