php – 表中的MySQL搜索关键字OR或AND或全文匹配

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 表中的MySQL搜索关键字OR或AND或全文匹配脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows etc… expects parameter 1 to be resource or result                                    31个
我有一个搜索表单来搜索MysqL中的产品,表格包含:

1)id

2)条形码

3)PRoduct_name

4)制造商

5)模型

我有更多的领域,如价格税等,但它们现在并不重要.

使用以下代码我正在搜索数据库,它工作得很好,但现在有一个问题.这是代码

首先是HTML表单

<form method="post" name="seArch">
<input tyPE="text"  name="keywords" value="...">
<input type="submIT"  value="search">
</form>

现在是PHPMysqL代码

$searchterms= MysqLi_real_escape_string($database,$_POST['keywords']);
$result=MysqLi_query($db,"
    SELECT * From `products` 
WHERE `barcode` LIKE '%$searchterms%'  
OR `product_name` LIKE '%$searchterms%' 
OR `model` LIKE '%$searchterms%'  
OR `manufacturer` LIKE '%$searchterms%'
");
$rows=MysqLi_num_rows($result);
if(MysqLi_num_rows($result)>0){
?>

我尝试了全文搜索,但是我收到了错误

$searchterms=        MysqLi_real_escape_string($database,$_POST['keywords']);
$result=MysqLi_query($database,"SELECT * From products
    WHERE MATCH (product,manufacturer,model)
AGaiNST ('$searchterms' IN NATURAL LANGUAGE MODE);");
    $rows=MysqLi_num_rows($result);
    if(MysqLi_num_rows($result)>0){
    ?>

错误文字
警告:MysqLi_num_rows()期望参数1为MysqLi_result,布尔值为

正如您所看到和理解的那样,我有一个输入文本可以在数据库中进行搜索.

如果我搜索关键字:“三星”,那么我从制造商三星获得产品.

如果我搜索模型“S6 Edge”,那么我会得到带有S6或S6型号的产品

如果我使用2个字的关键字“samsung s6”,那么搜索结果为空

知道为什么吗?

编辑:

这是我在小提琴中使用的完整代码

https://jsfiddle.net/psnf0arw/

查看完整的PHP代码会更容易理解

@L_777_40@

如果您打算在任何这些字段中找到任何关键字,则可以尝试使用REGExp而不是LIKE.

$searchterms = MysqLi_real_escape_string($database,$_POST['keywords']);
$searchexp = implode("|",str_word_count($searchterms,1));
$result=MysqLi_query($db,"
    SELECT * FROM `products` 
        WHERE `barcode` REGEXP '$searchexp'
        OR `product_name` REGEXP '$searchexp'
        OR `model` REGEXP '$searchexp'
        OR `manufacturer` REGEXP '$searchexp'
");

脚本宝典总结

以上是脚本宝典为你收集整理的php – 表中的MySQL搜索关键字OR或AND或全文匹配全部内容,希望文章能够帮你解决php – 表中的MySQL搜索关键字OR或AND或全文匹配所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。