共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>
本来就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>
$_GET["serch"]=preg_replace("#[\s]+$#","",$_GET["serch"]); //去掉以空格结尾的空格
$chaifen=explode(" ",$_GET["serch"]); //数据拆分去除头尾空格用trim就可以了
$_GET["serch"] = trim($_GET["serch"]);然后下面就不用判断数组个数了。
sql直接这么写。$serch_sql = " AND LIKE '%" . str_replace(' ', "%' OR LIKE '%", $_GET["serch"]) . "%'";
$sql="SELECT * FROM `sjk` where `biaoti` WHERE 1" . $serch_sql;
$sql=mysql_query($sql);
能帮说下原理不?
trim 转换 首字母变大写了,麻烦!!
怎么不区分大小写查询数据库呢?
trim 转换 也不会首字母变大写的 0_0
不区分大小写查询数据库
这跟mysql引擎字符集有关。
记得结贴呐~