我需要一些关于如何使我的 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/