十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
PHP要实现关键字查搜索,需要用到like关键字来组合查询条件
创新互联公司是一家专业提供蒙自企业网站建设,专注与网站建设、成都网站设计、H5建站、小程序制作等业务。10年已为蒙自众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。
like具体实现方法如下:
例一:
1 $userForm=M('user');
1 $where['name']=array('like','phpernote%');
2 $userForm-where($where)-select();
这里的like查询即为:name like 'phpernote%'
例二:
1$where['name']=array('like',array('%phpernote%','%.com'),'OR');
这里的like查询即为:name like '%phpernote%' or name like '%.com'
例三:
1$where['name']=array(array('like','%a%'),array('like','%b%'),array('like','%c%'),'phpernote','or');
这里的like查询即为:(`name` LIKE '%a%') OR (`name` LIKE '%b%') OR (`name` LIKE '%c%') OR (`name` = 'phpernote')
例四:
1$where['_string']='(name like "%phpernote%") OR (title like "%phpernote")'
这里的like查询即为:name like '%phpernote%' or title like '%phpernote'
提交的时候记得把默认的值去掉 才能判断是否有值..
//这个是把三个搜索关键词作为独立的因子搜索
function search(){
if(isset($_POST['id']) intval($_POST['id'])0){
$sql="select * from tbl where id=".intval($_POST['id'])." ";
}
if(isset($_POST['name'])){
$sql.="union select * from tbl where name=".$_POST['name']." ";
}
if(isset($_POST['content'])){
$sql.="union select * from tbl where content like '%".$_POST['content']."%' ";
}
$s = M('search');
$result=$s-query($sql);
}
}
//以下是把三个搜索当作条件进行搜索 有筛选的味道
function search(){
$where="1=1";
if(isset($_POST['content'])){
$where.=" and content like '%$_POST[content]%'";
}
if(isset($_POST['content'])){
$where.=" and name = '$_POST[name ]'";
}
if(isset($_POST['id']) intval($_POST['id'])0){
$where.=" and id= '$_POST[id]'";
}
if($where != '1=1'){
$sql="select * from tbl $where";
}else{
throw new Exception('没有输入搜索词');
}
$s = M('search');
$result=$s-query($sql);
}
}
或者叫,分词检索数据库
$res
=
mysql_query("select
*
from
peter
where
id
like
'%中草药%'
and
'%6%'");
//这样写是报错的;
$res
=
mysql_query("select
*
from
peter
where
id
like
'%中草药%'
or
'%6%'");
//而这样写是正确的;奇怪~
$res
=
mysql_query("select
*
from
peter
where
id
like
'%中草药%'
and
id
like
'%6%'");
//这样写是正确的;
$res
=
mysql_query("select
*
from
peter
where
id
like
'%中草药%'
or
id
like
'%6%'");
//这样写都是正确的;
以上就是小编为大家带来的php
mysql
like
实现多关键词搜索的方法全部内容了,希望大家多多支持脚本之家~
?php
$host="localhost";
$username="root";
$password="root";
$db="db4"; //库名
$mysql_table="person"; //表名
//连接数据库,面向过程
$conn=mysqli_connect($host,$username,$password);
if(!$conn){
echo "数据库连接失败";
exit;
}
//选择所要操作的数据库
mysqli_select_db($conn,$db);
//设置数据库编码格式
mysqli_query($conn,"SET NAMES UTF8");
//编写sql获取分页数据 SELECT * FROM 表名 LIMIT 起始位置,显示条数
//注意:以下id,name,age,say都是字段节点名,person是表名,db4是数据库名,think是指定的关键字.
$sql = 'SELECT id, name, age, say
FROM person
WHERE say LIKE "%think%" order by id ASC LIMIT '.($page-1)*$pageSize .",{$pageSize}";
// 节点名 关键字 节点名 可指定数量limit后可写一个指定的数字
//$sql="select * from $mysql_table"
//把sql语句传送到数据库
$result=mysqli_query($conn,$sql);
//将数据显示到table中,并未table设置格式
echo "div class='content'";
echo "table border=1 cellspacing=0 width=30% align=center";
echo "trtdID/tdtdNAME/tdtdsay/td/tr";
while ($row = mysqli_fetch_assoc($result)) {
echo "tr";
echo "td{$row['id']}/td";
echo "td{$row['name']}/td";
echo "td{$row['say']}/td";
echo "tr";
}
echo "/table";
echo "/div";
//释放结果
mysqli_free_result($result);
//关闭数据库
mysqli_close($conn);