我有一个表格,其中一列包含像文字一样的表面:“200 300 450 557” 用户搜索表面给出的范围是我用2个变量$ min和$ max得到的。 我需要选择在该区间中具有曲面的所有属性。检查表格数组值是否在范围内
在这里,我有很长的解决方案,但我相信这只是内选择一个较短的一个...
$min=$_GET["min"]; // min price given by user - like 1000 euro
$max=$_GET["max"]; // max price given by user - like 2500 euro
$result=mysql_query("SELECT * FROM `offers`");
$nr=mysql_numrows($result);
while($i<$nr) {
$surface=mysql_result($result,$i,"surface"); // something like "100 200 250 350" sqm
$price=mysql_result($result,$i,"price"); // this is per square metter like "12" euro/sqm
$s=explode(' ',$surface);
if ($s[$i]*$price<=$max && $s[$i]*$price>=$min) // i don't know if it sees it like number or char???
{
$id = mysql_result($result,$i,"id");
$area = mysql_result($result,$i,"area");
$details = = mysql_result($result,$i,"det");
// do something with them
};
}
的一点是,我需要多个搜索最简单的解决方案。 如果我想有一个单一的表面代码沃尔德是这样的:
"SELECT * FROM `offers` WHERE (surface between $min and $max) && (price between $pmin and $pmax)&&(area='$area') ORDER BY `id` DESC LIMIT 50;"
但如果我有像面“123 300 500 790 ......”我该怎么办?只有一个选择可能吗?
感谢
你可以分割面尺寸为自己的表,有许多到许多(甚至是一个一对多)的链接?那个设计不太好。 – slugonamission
PLZ停止使用'mysql_ *',因为它已被弃用...开始使用'mysqli_ *'或'PDO'而不是 – Naruto
可能太多...每个属性应该有多少列10 ... 20。 0.30?我更喜欢只用一张表和数组,如果可能的话 –