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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP中怎么实现关键字搜索?相关的知识,希望对你有一定的参考价值。

例如我输入:百度知道,就回显示出所有内容中包含“百度知道”几个关键字的所有文章。(数据库已有文章)

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\'

参考技术A 当你把你输入的字 如:百度知道传到php程序里面,然后你可以通过写sql来完成查询(本身就是一个查询功能),select * from table where name like %百度知道% 参考技术B 当你把你输入的字 如:百度知道传到php程序里面,然后你可以通过写sql来完成查询(本身就是一个查询功能),select * from table where name like %百度知道%本回答被提问者采纳 参考技术C 用LIKE
数据表:news
字段:cont对应内容
select * from `news` where `cont` like '%百度知道%'
参考技术D <!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>   

怎么样修改小猪cms(从功能库添加)模块关键字

需求:修改或者添加从功能库添加中的关键字

这里以添加咨询投诉为列:

找到wwwroot\PigCms\Lib\Action\User目录下的LinkAction.class.php文件(手动找不到直接CTRL+F全局搜索LinkAction.class.php文件)

打开LinkAction.class.php文件,LinkAction.class.php搜索留言关键字,然后复制一份粘贴修改

以上是关于PHP中怎么实现关键字搜索?的主要内容,如果未能解决你的问题,请参考以下文章

php怎么实现搜索高亮,注意是分开的字符

求一个php搜索全站的代码

PHP实现多个关键词搜索查询功能,以前实现过。

php的关键字查询定位搜索代码,一直在报错,请大家帮忙看看?

PHP实现关键词全文搜索Sphinx及中文分词Coreseek的安装配置

JSP搜索怎么实现啊