php mysql写站内搜索问题 sql该怎么写? 20

共3个问题。本来就2句SQL语句。但查询会重复出现结果,怎么过滤掉重复的啊?比如查询xxxzzz第一条和第2条都匹配!结果导致重复!还有如果数据是DxxDCzzzC不想匹... 共3个问题。
本来就2句SQL语句。但查询会重复出现结果,怎么过滤掉重复的啊?
比如查询 xxx zzz 第一条和第2条都匹配!结果导致重复!
还有如果数据是 DxxD CzzzC 不想匹配,只完全匹配xx zz 要怎么写SQL啊?
还有怎么不区分大小写查询?
下面全部代码。

<?php
if(@$_GET['serch']){
mysql_connect("localhost","heihei","123123");
mysql_select_db("news");
mysql_query("set names 'utf-8'");
$_GET["serch"]=preg_replace("#^[\s]+#","",$_GET["serch"]); //去掉以空格开头的空格
$_GET["serch"]=preg_replace("#[\s]+$#","",$_GET["serch"]); //去掉以空格结尾的空格
$chaifen=explode(" ",$_GET["serch"]); //数据拆分

//print_r($chaifen);

echo count($chaifen);

if(count($chaifen==1)){
$danguanjianzi="SELECT * FROM `sjk` where `biaoti` like '%$_GET[serch]%'";
$danguanjianzi=mysql_query($danguanjianzi);
while($rr=mysql_fetch_array($danguanjianzi)){
$rr["biaoti"]=preg_replace("#($_GET[serch])#","<b>\\1</b>",$rr["biaoti"]);
echo $rr["biaoti"]."..........<br>";
}
}

if(count($chaifen)>1){
$sql="SELECT * FROM `sjk` where `biaoti` like '%$chaifen[0]%' and `biaoti` like '%$chaifen[1]%'";
$sql=mysql_query($sql);
while($r=mysql_fetch_array($sql)){
$r["biaoti"]=preg_replace("#($chaifen[0])#","<b>\\1</b>",$r["biaoti"]);
$r["biaoti"]=preg_replace("#($chaifen[1])#","<b>\\1</b>",$r["biaoti"]);
echo $r["biaoti"]."<br>";
}
}
}
?>
<form action="" method="get">
<input name="serch">
<input type="submit" value="serch"/>
</form>
展开
 我来答
majiguang
2011-11-28 · TA获得超过757个赞
知道小有建树答主
回答量:1024
采纳率:0%
帮助的人:1359万
展开全部
1、sql后面加group by biaoti去重复
2、不拆分 直接 biaoti like '%$search%'
3、$search=strtolower($_GET['search']);
追问
1:能写全整句SQL语句吗?
2:这不跟我的一样吗?我要的是单词完全匹配,就是前后没有多余字母的。。。
3:这转为小写不可以的呀?数据库里内容的是分大小写的。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式