2

我现在正在执行一项任务,我正在尝试构建一个小型房地产之类的网站,该网站根据用户输入城市从我的 mySQL 数据库中构建搜索。我现在可以根据用户是否完全正确地输入城市来返回正确的结果,但是如果用户只输入城市的一部分,我希望它能够返回搜索。

一个例子是,分配中的一些城市是“Tomsville”和“OceanCove”,如果有人只输入“Tom”甚至“T”,我需要能够让搜索能够返回“Tomsville”的结果“......对于“OceanCove”也需要如此,他们可以输入“ocean”并获得结果。

用户输入的变量是 $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 ""
                }               
        }
    }
4

2 回答 2

3

尝试%围绕搜索词使用并使用like而不是=作为运算符:

$statement .= "WHERE city like '%".$findhome."%' ";
于 2012-08-21T06:05:29.290 回答
0

Use LIKE operator

$statement .= "WHERE city LIKE '%".$findhome."%' ";
于 2012-08-21T06:09:20.433 回答