我现在正在进行一项任务,我正在尝试建立一个小型房地产,例如基于用户输入城市从我的mySQL数据库构建搜索的网站。我现在正在根据用户是否完全正确地输入城市来回馈正确的结果,但是如果用户只是进入城市的一部分,我希望它能够返回搜索结果。
一个例子是,任务中的一些城市是“Tomsville”和“OceanCove”我需要能够让搜索能够返回“Tomsville”的结果,如果有人只是输入“Tom”或甚至“T”......对于“OceanCove”来说也是如此,他们可以输入“海洋”并获得结果。
用户输入的变量是$ findhome。
以下是我的代码中与此问题相关的部分:
$statement = "SELECT *";
$statement .= "FROM u1585_homes ";
if ($findhome!= 'ALL')
{
$statement .= "WHERE city ='".$findhome."' ";
}
$statement .= "ORDER BY city";
$sqlResults = selectResults($statement);
$error_or_rows = $sqlResults[0];
if (substr($error_or_rows, 0 , 5) == 'ERROR')
{
print "<br />Error on DB";
print $error_or_rows;
} else {
$arraySize = $error_or_rows;
for ($i=1; $i <= $error_or_rows; $i++)
{
$image_file = $sqlResults[$i]['image_file'];
$city = $sqlResults[$i]['city'];
$price = $sqlResults[$i]['price'];
$bedrooms= $sqlResults[$i]['bedrooms'];
$baths= $sqlResults[$i]['baths'];
$footage = $sqlResults[$i]['footage'];
$realtor_firstname = $sqlResults[$i]['realtor_firstname'];
$realtor_lastname = $sqlResults[$i]['realtor_lastname'];
$grabber = $sqlResults[$i]['grabber'];
$description = $sqlResults[$i]['description'];
print "<p><img src='images/".$image_file."'>";
print "<h3>".$grabber."</h3><br />";
print "City: ".$city."<br />";
print "Bedrooms: ".$bedrooms."<br />";
print "Baths: ".$baths."<br />";
print "Price: ".$price."<br />";
print "Footage: ".$footage."<br />";
print "Realtor: $realtor_firstname ".$realtor_lastname."<br />";
print "Description: ".$description;
//print ""
}
}
}
答案 0 :(得分:3)
尝试在搜索字词周围使用%
,并使用like代替=
作为运营商:
$statement .= "WHERE city like '%".$findhome."%' ";
答案 1 :(得分:0)
使用LIKE运算符
$statement .= "WHERE city LIKE '%".$findhome."%' ";