php - 从表单输入中搜索 SQL 中的部分变量

标签 php mysql

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

一个例子是,作业中的一些城市是“Tomsville”和“OceanCove”,如果有人只输入“Tom”或“OceanCove”,我需要能够让搜索返回“Tomsville”的结果甚至“T”...“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 ""
                }               
        }
    }

最佳答案

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

$statement .= "WHERE city like '%".$findhome."%' ";

关于php - 从表单输入中搜索 SQL 中的部分变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12049164/

相关文章:

Mysql使用 "as"进行更多计算

php - 如何从 PHP 中的图像变量加载 blob

PHP Cookie 不起作用

php - 使用多输入 Codeigniter 创建过滤器

php - API分页,如何实现page token分页方式?

Python mysql.connector rowcount > 0 但 fetchall() 显示没有结果

MySQL 忽略具有标准差的异常值

mysql - 我应该安装哪个驱动程序以便可以使用 powershell 运行 mysqlcommand?

php - RDS 上的 MySQL 触发器

Php排行榜问题