我正在使用this script,我想修改/更新它以这种方式工作:
在我的数据库中,我有例如:hello world, my name is John
。当我搜索Hello World
或orld, m
或name i
时,我想要找到该项目,但如果我搜索world hello
或name John
则无法查找该项目。所以,我正在寻找使其发挥作用的方法。有人能帮助我吗?
非常感谢
的index.php
<script type="text/javascript">
$(function(){
$(".search").keyup(function() {
var searchid = $(this).val();
var dataString = 'search=' + searchid;
if (searchid != '') {
$.ajax({
type: "POST",
url: "search.php",
data: dataString,
cache: false,
success: function(html) {
$("#result").html(html).show();
}
});
}
return false;
});
jQuery("#result").live("click", function(e){
var $clicked = $(e.target);
var $name = $clicked.find('.name').html();
var decoded = $("<div/>").html($name).text();
$('#searchid').val(decoded);
});
jQuery(document).live("click", function(e) {
var $clicked = $(e.target);
if (! $clicked.hasClass("search")){
jQuery("#result").fadeOut();
}
});
$('#searchid').click(function(){
jQuery("#result").fadeIn();
});
});
</script>
<style type="text/css">
body {
font-family: Tahoma, Geneva, sans-serif;
font-size: 15px;
}
.content {
width: 90%;
margin: 0 auto;
}
#searchid {
width: 90%;
border: solid 1px #000;
padding: 10px;
font-size: 14px;
}
#result {
position: absolute;
width: 70%;
padding: 15px;
display: none;
margin-top: -1px;
border-top: 0px;
overflow: hidden;
border: 1px #CCC solid;
color: white;
background-color: black;
}
.show {
padding: 4px;
border-bottom: 1px #999 dashed;
font-size: 12px;
height: 58px;
}
.show:hover {
background: #4c66a4;
color: #FFF;
cursor: pointer;
}
</style>
的search.php
<?php
include('admin/db.php');
if($_POST)
{
$q = $_POST['search'];
$sql_res = mysql_query("select id, name, email, infos from autocomplete where name like '%$q%' or email like '%$q%' or infos like '%$q%' order by id LIMIT 100");
while ($row = mysql_fetch_array($sql_res))
{
$username = $row['name'];
$email = $row['email'];
$infos = $row['infos'];
$b_username = '<strong><font style="color: black; background-color: #ffff42">'.$q.'</strong></font>';
$b_email = '<strong><font style="color: black; background-color: #ffff42">'.$q.'</strong></font>';
$b_infos = '<strong><font style="color: black; background-color: #ffff42">'.$q.'</strong></font>';
$final_username = str_ireplace($q, $b_username, $username);
$final_email = str_ireplace($q, $b_email, $email);
$final_infos = str_ireplace($q, $b_infos, $infos);
?>
<div class="show" align="left">
<span class="name">
<?php echo $final_username; ?>
</span> <br/>
<?php echo $final_email; ?>
</span> <br/>
<?php echo $final_infos; ?><br/>
</div>
<?php }
} ?>
答案 0 :(得分:1)
答案 1 :(得分:0)
我也是法国人! :d
在这里,您可以搜索&#34;名称为&#34;您在名称,电子邮件和信息栏中请求搜索所有包含&#34;名称的结果是&#34;。
如果你想逐字搜索,你需要在你的每个单词中使用一个boucle,在一个临时表中搜索查询存储结果并返回包含每个单词的所有结果。
可能还有其他解决方案:SQL SELECT WHERE field contains words