我使用 HTML 表单来允许用户查找数据库表中的条目:
<form action="controller.php" method="get">
<input type="text" name="word" id="word">
Run Code Online (Sandbox Code Playgroud)
我的数据库中的表有一列名为 keywords 的列,其中包含多个值,因此我使用 SELECT 查询来选择具有与用户在表单中键入的内容相匹配的任何关键字的所有行。所以controller.php包含这个查询:
$word= $_GET['word'];
$query = SELECT * FROM table WHERE table.keywords LIKE '%{$word}%
Run Code Online (Sandbox Code Playgroud)
除非用户在搜索框中输入多个单词,否则这种方法效果很好。如何更改此设置,以便当用户在搜索框中输入多个单词时,它将返回其关键字列中包含任一用户单词的所有行。
即,用户搜索“apples Oranges”,查询将返回关键字字段中包含“apples”或“oranges”的所有行。
LIKE命令适用于单字字符串。对于数据库中的高级搜索,请使用FULLTEXT搜索。
https://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html