2015-09-04 3 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 или что-то еще, как выше, код, который проверяет меньше или больше, работает над целочисленным значением. Проверьте свою ценность и после использования. –