PHP中怎么实现关键字搜索?

例如我输入:百度知道,就回显示出所有内容中包含“百度知道”几个关键字的所有文章。(数据库已有文章)... 例如我输入:百度知道,就回显示出所有内容中包含“百度知道”几个关键字的所有文章。(数据库已有文章) 展开
 我来答
骑王子特斯拉
推荐于2016-12-01 · 知道合伙人软件行家
骑王子特斯拉
知道合伙人软件行家
采纳数:360 获赞数:2021
某度最佳知道合伙人

向TA提问 私信TA
展开全部

PHP要实现关键字查搜索,需要用到like关键字来组合查询条件

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'

随性亻
2015-06-05 · TA获得超过4180个赞
知道小有建树答主
回答量:4622
采纳率:84%
帮助的人:635万
展开全部
当你把你输入的字 如:百度知道传到php程序里面,然后你可以通过写sql来完成查询(本身就是一个查询功能),select * from table where name like %百度知道%
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3cb8a8b
推荐于2016-05-08 · TA获得超过371个赞
知道小有建树答主
回答量:375
采纳率:0%
帮助的人:332万
展开全部
当你把你输入的字 如:百度知道传到php程序里面,然后你可以通过写sql来完成查询(本身就是一个查询功能),select * from table where name like %百度知道%
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
邪魔剑圣
2011-12-07 · TA获得超过147个赞
知道小有建树答主
回答量:99
采纳率:0%
帮助的人:121万
展开全部
用LIKE
数据表:news
字段:cont对应内容
select * from `news` where `cont` like '%百度知道%'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友46760c320e
2018-08-25 · TA获得超过1272个赞
知道小有建树答主
回答量:1569
采纳率:33%
帮助的人:207万
展开全部
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=utf-8">
</head>
<style type="text/css">
body{
font-size: 12px;font-family: verdana;width: 100%;
}
div.page{
text-align: center;
}
div.content{
height: 300px;
}
div.page a{
border:#aaaadd 1px solid;text-decoration: none;padding: 2px 5px 2px 5px;margin: 2px;
}
div.page span.current{
border:#000099 1px solid;background-color: #000099;padding: 2px 5px 2px 5px;margin: 2px;color: #fff;font-weight: bold;
}
div.page span.disable{
border:#eee 1px solid;padding:2px 5px 2px 5px; margin: 2px;color:#ddd;
}
div.page form{
display: inline;
}
</style>
<body>
<?php
//设置级别错误,通知类除外
error_reporting('E_ALL&~E_NOTICE');
/**1---传入页码,使用GET获取**/
$page=$_GET['p'];
/**2---根据页码取出数据:php->mysql处理**/
$host="localhost";
$username="root";
$password="root";
$db="db4"; //数据库
$mysql_table="person"; //数据表
$table_guanjianzi="think"; //关键字

$pageSize=10;
$showPage=5;
//连接数据库,面向过程
$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 '%{$table_guanjianzi}%' order by id ASC LIMIT ".($page-1)*$pageSize .",{$pageSize}"; //双引号能包单引号,反过来不行,会出错./
// $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='select * from data where Id='.$id.' order by '.$item.' desc';
//把sql语句传送到数据库
$result=mysqli_query($conn,$sql);
//将数据显示到table中,并未table设置格式
echo "<div class='content'>";
echo "<table border=1 cellspacing=0 width=30% align=center>";
echo "<tr><td>ID</td><td>NAME</td><td>say</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);
//获取数据总条数
$total_sql="SELECT COUNT(*)FROM $mysql_table";
$total_result=mysqli_fetch_array(mysqli_query($conn,$total_sql));
$total=$total_result[0];
$total_pages=ceil($total/$pageSize);
//关闭数据库
mysqli_close($conn);
/**3---显示数据+显示分页条**/
$page_banner="<div class='page'>";
//计算偏移量
$pageoffset=($showPage-1)/2;
//两种情况下 首页、上一页 的显示效果
if($page>1){
$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=1'>首页</a>";
$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=" .($page-1) . "'><上一页</a>";
}else{
$page_banner .="<span class='disable'>首页</span>";
$page_banner .="<span class='disable'><上一页</span>";
}
//显示
$start=1;
$end=$total_pages;
//当总条数大于分页数时
if($total_pages>$showPage){
if($page>$pageoffset+1){
$page_banner .="...";
}
if($page>$pageoffset){
$start=$page-$pageoffset;
$end=$total_pages>$page+$pageoffset?$page+$pageoffset:$total_pages;//三段式
}
//最前面几个特殊页号的显示。当前指的是页号1或者2时
else{
$start=1;
$end=$showPage;
}
//最后面几个特殊页号的显示,当前显示的是页号7和8
if($page+$pageoffset>$total_pages){
$start=$start-($page+$pageoffset-$end);//注意理解这一句
}
}
//显示页码
for($i=$start;$i<=$end;$i++){
//当前页页码上显示背景色
if($page==$i){
$page_banner .="<span class='current'>{$i}</span>";
}
//非当前页码显示
else{
$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=" .$i . "'>{$i}</a>";
}
}
if($total_pages>$showPage&&$total_pages>$page+$pageoffset){
$page_banner .="...";
}
//两种情况下的尾页、下一页 的显示效果
if($page<$total_pages){
$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=" .($page+1) . "'>下一页></a>";
$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=$total_pages'>尾页</a>";
}else{
$page_banner .="<span class='disable'>尾页</span>";
$page_banner .="<span class='disable'>下一页></span>";
}
$page_banner .= "共{$total_pages}页,";
$page_banner .= "<form action='mypage.php' method='get'>";
$page_banner .= " 到第<input type='text' size=2 value='1' name='p'>页";
$page_banner .= "<input type='submit' value='确定'>";
$page_banner .= "</form>";
$page_banner .= "</div>";
echo $page_banner;
?>
</body>
</html>   
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式