小孩嘎嘎牛º 春风冰冷
关注数: 29 粉丝数: 24 发帖数: 812 关注贴吧数: 20
摊上难题了,求解决 下面这个php站内搜索的代码,看一下: <?php $conn = @mysql_connect("localhost", "root", "") or die("数据库链接错误"); mysql_select_db("bbs", $conn); mysql_query("set names 'GBK'"); //使用GBK中文编码; if($_GET['key']) { $k = explode(" ", $_GET[key]); $sql = "SELECT * FROM `text` WHERE content LIKE '%$k[0]%' or content LIKE '%$k[1]%'"; $query = mysql_query($sql); while($r=mysql_fetch_array($query)) { $r[content] = preg_replace("/($k[0])/i", "<font color=red><b>\\1</b></font>", $r[content]); $r[content] = preg_replace("/($k[1])/i", "<font color=red><b>\\1</b></font>", $r[content]); echo "$r[content]"."<br>"; } } ?> <html> <body> <form action="" method="get"> 关键字: <input type="text" name="key" /> <input type="submit" name="sub" value="搜索" /> </form> </body> </html> 这个代码是搜索站内关键字,如果关键字带空格的,分割成两个关键字搜索的。 比如说,我数据库里有四条数据,分别如下: 1.耐克运动鞋2015 2.女装2015 3.男装2015 4.童装2015 --------------------- 现在这个代码有两个严重问题。 第一个问题:如果搜索:耐克 2015,刚显示正常,如果只搜索耐克两个字,刚显示为乱码,就是说只能搜索带空格的两个关键字才能正常显示,如果搜索单个关键字,就显示为乱码。 第二个问题:这个搜索是把关键字拆开了,然后分别搜索,然后再共同显示出来的,比如说我搜索:耐克 女装。搜索结果会显示第1条和第2条数据出来。如果是这样的,那这个搜索就没用了吧,因为像我那四条数据那样,如果搜索:耐克 2015,那就显示全部内容了,因为四条数据不是包含了耐克,就是包含了2015,它分开搜索,再共同显示,就等于全部出来了。我想修改的怎么变成像淘宝搜索那样的,如果你搜索:耐克 2015,正常的功能应该是搜索到既包含耐克,也包含2015的数据,也就是结果为第一条数据,2.3.4条不会显示。有会的麻烦修改一下代码再贴出来。谢谢啊
1 下一页