php - 如何在mysql中应用多词搜索

标签 php mysql search cpu-word

我需要一些关于如何使我的 php 脚本看起来不仅仅是 1 个单词或多个单词(John Doe)的要点。目前我的脚本只能从指向的表中找到第一个单词“John”。这是我的脚本:

$query = $_GET['query'];   
$min_length = 1;

if (strlen($query) >= $min_length) { 
    $query = htmlspecialchars($query); 
    $query = mysql_real_escape_string($query);

    $raw_results = mysql_query(
        "SELECT * FROM filmi WHERE  (`title` LIKE '%".$query."%') 
         OR (`description` LIKE '%".$query."%') OR (`nomer` LIKE '%".$query."%')"
    ) or die(mysql_error());

    if (mysql_num_rows($raw_results) > 0) { 
        while ($results = mysql_fetch_array($raw_results)) {
            echo "


            print results       

            ";
        }
    } else { 
        echo "No results";
    }
} else { 
    echo "Minimum length is " . $min_length;
}

最佳答案

使用此代码,我添加了新行。

这基本上添加了通配符 % 来代替空格,以便它将修改现有查询并向其添加通配符。这样它就可以找到包含给定搜索查询中所有单词的所有记录。

<?php
$query = $_GET['query']; 

$min_length = 1;

if(strlen($query) >= $min_length){
    $query = htmlspecialchars($query); 
    $query = mysql_real_escape_string($query);
    //added new line ################
    $query = str_replace(' ', '%', $query);
    $raw_results = mysql_query("SELECT * FROM filmi
        WHERE  (`title` LIKE '%".$query."%') OR (`description` LIKE '%".$query."%') OR (`nomer` LIKE '%".$query."%')") or die(mysql_error());

    if(mysql_num_rows($raw_results) > 0){ 
        while($results = mysql_fetch_array($raw_results)){
            echo "
            print results       
            ";
        }
    }
    else{ 
        echo "No results";
    }
}
else{ 
    echo "Minimum length is ".$min_length;
} ?>

关于php - 如何在mysql中应用多词搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35225756/

相关文章:

javascript - 无法从 mysql 中删除 (file.size)

php - 如何将以下三个 Laravel Eloquent 查询合并为一个?

php - 停止机器人快速发送多个请求。 PHP + AJAX

javascript - 将mysql数据库的php查询搜索限制为非空行

mysql - 分离 SQL 表,同时仍允许连接

algorithm - 从数组中提取前 N 个唯一整数

php - 检查数据库值的复选框

MySQL 根据 DATE 更新列的值

具有多个字段的 PHP 和 MYSQL 动态搜索在日期范围内失败

javascript - 如何通过添加 for 循环来遍历 data.games 来重写搜索函数,并在搜索时添加它显示的分数?