Php 搜索多个搜索词
如何使用以下代码搜索多个字段: 如果计数$error<1{ $searchSQL=从job_search WHERE中选择sid、sdate、缝合线、slocation、skategori、stype、sbody、slist; 抓取搜索类型。 $types=数组; $types[]=isset$_GET['title']?'stitle'类似“{$searchTermDB}%”:; $types[]=isset$_GET['desc']?`skategori`类似“{$searchTermDB}%”:; $types[]=isset$_GET['list']?'slist`类似“%$searchTermDB}%”:; $types=array_filter$types,removempty; 如果计数$类型<1{ $types[]=`sbody`LIKE'%{$searchTermDB}%'; $andOr=isset$_GET['matchall']?'和':'或'; $searchSQL.=内爆{$andOr},$types.ORDER BY`stitle`; $searchResult=mysql\u query$searchSQL或trigger\u error..mysql\u error.SQL为:{$searchSQL}; } } 我在$types=数组中使用了一个复选框;如果未选中任何复选框,则搜索将使用$types[]=sbody,如“{$searchTermDB}%” 我想知道的是,如何在{$searchTermDB}中创建多个$types[],然后使用“{$searchTermDB}%”之类的搜索所有字段 您可以构建与当前类似的字段字符串。上面是完整查询的基本示例Php 搜索多个搜索词,php,mysql,Php,Mysql,如何使用以下代码搜索多个字段: 如果计数$error
请注意,您确实应该使用PDO或mysqli之类的工具来处理数据库通信。mysql函数已被弃用。以下是解决方案。完全归功于@Kaiqing的帮助。我删除了$types=数组;并将其替换为以下内容:
// If there are no errors, lets get the search going.
if (count($error) < 1) {
$searchSQL = "
SELECT sid, sdate, stitle, slocation, skategori, stype, sbody, slist
FROM job_search
WHERE MATCH(`stitle`, `skategori`, `slist`, `sbody`, `slocation`)
AGAINST('{$searchTermDB}' IN BOOLEAN MODE) ";
$searchResult = mysql_query($searchSQL) or trigger_error("There was an error.<br/>" . mysql_error() . "<br />SQL Was: {$searchSQL}");
我没有使用PDO,安全的选择是使用PDO方法。你有没有调查过对手的比赛?这样你就可以参考@KaiQing所说的内容了:。这就是你要寻找的答案。布尔型全文搜索也会起作用:@KaiQing如何将全文布尔型集成到我当前的脚本中?很抱歉,我还是PHP和MySQL的初学者。谢谢,我还在研究PDO,离掌握它的窍门不远了。
// If there are no errors, lets get the search going.
if (count($error) < 1) {
$searchSQL = "
SELECT sid, sdate, stitle, slocation, skategori, stype, sbody, slist
FROM job_search
WHERE MATCH(`stitle`, `skategori`, `slist`, `sbody`, `slocation`)
AGAINST('{$searchTermDB}' IN BOOLEAN MODE) ";
$searchResult = mysql_query($searchSQL) or trigger_error("There was an error.<br/>" . mysql_error() . "<br />SQL Was: {$searchSQL}");