这是我的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/