这是我的php文件的一部分。

if(preg_match("/^[   a-zA-Z]+/", $_POST['searchName']))
{
    $name=$_POST['searchName'];

    $con=mysql_connect ("localhost", "root",  "");

    $mydb=mysql_select_db("food",$con);

    $result=mysql_query("SELECT Name, Price FROM info WHERE Name='$name'");

    while($row=mysql_fetch_array($result))
    {
        echo $row['Name'];
        echo $row['Price'];
    }
}
else
{
    echo  "<p>Please enter a search query</p>";
}


现在对我来说,问题是,例如,我想搜索鸡肉比萨饼,但是仅当我键入完整的句子(即鸡肉比萨饼)时,它才会显示信息。如果我键入chicken或其他关键字,如何显示与鸡肉相关的数据(如鸡肉派,鸡翅),该怎么做?感谢您的劝告。

注意:解决此问题后,将其更改为mysqli

最佳答案

您需要在此处使用LIKE运算符。 LIKE具有多种方式。您可以在关键字之前,关键字之后以及关键字之前和之后使用%

例:

"SELECT Name, Price FROM info WHERE Name LIKE '%$name%'"



  提示:“%”符号用于定义通配符(缺少字母)
  模式之前和之后。


并停止使用mysql_*,从mysqli_*PDO开始。

关于php - 在搜索关键字时显示所有相关数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37420757/

10-16 17:20