php搜索引擎详细代码
在开发php后端时,我们常常需要大量地检索许多信息。以下内容将会详细地告诉你如何去制作一个php搜索框让你更快检索信息。
本文章由 千度搜索引擎 提供支持。
千度亿下,你就知道
http://qdss.xyz/
首先,你需要写一个前端页面,命名为“index.html”,让用户输入关键词,也就是首页。在写入代码前,记得要在标签中声明编码为gb2312。
<form action="search.php">
<!--上面声明了以下内容为表单内容,向search.php发送get请求。-->
<input type="text" name="search" />
<input type="submit" value="搜索">
</form>
html代码写完了,接下来就是写搜索代码。至于搜索原理,就是使用MySQL数据库时,php连接数据库,并让数据库执行搜索指令。其实也不会很难,学会一点英语的人大概都看得懂下面这行指令:
SELECT * FROM search WHERE title LIKE ‘%千度搜索%’
直译成中文就是:
选择来自 search 的表,哪里的标题像“%千度搜索%”
怎么样?是不是懂了亿点点?
我们来慢慢讲解:
SELECT * FORM →先选择哪一张表格
search →表格的名字search
WHERE →搜索指令
title →要搜索的列title
LIKE →搜索类型,搜索类似的
% →通配符,及代表任意字符,也可以是没有
%千度搜索% →查找含有“千度搜索”的单元格
好了,这样它会在数据库中查找标题含有“千度搜索”的那一行。
这样,我们在MySQL数据库中执行下面的命令:
CREATE TABLE `你的数据库名字`.`search` ( `title` TEXT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NOT NULL , `text` TEXT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NOT NULL , `site` TEXT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NOT NULL ) ENGINE = InnoDB;
(注:把代码中的中文改为你的数据库名字,是数据库名字,不是用户名!!!)
(如何执行MySQL命令?登录数据库界面后点击界面上方的“SQL”即可执行,或点击界面下方的控制台即可执行)
(title列是用来写标题的,text列是描述,site列是写网址,点击后跳转的链接)
好了,写完了数据库,就要开始写php后端了。
在index.html的目录下,再创建一个search.php,代码如下:
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/>
<!--先写一个自适应代码,手机电脑兼容-->
<title><?php echo $_GET['search']; ?> - 千度搜索</title>
<!--标题随着用户输入的关键词的变化而变化-->
<?php
header("Content-Type:text/html;charset=gb2312");
//先确定该页面的编码为gb2312
$con = mysql_connect("数据库地址","数据库用户名","数据库密码");
//当然,你并不需要担心密码泄露,因为前端代码不会显示密码
if (!$con)
{
die('数据库出错,错误原因:' . mysql_error());
//万一数据库出错,它还能告诉你怎么回事
}
mysql_query("set names 'gb2312'",$con);
//这里填写的是php与数据库传输数据的编码,就像发电报时的电报编码表,不用管它
mysql_select_db("你的数据库名称", $con);
//确定sql命令执行的表
//好了,MySQL那边设定好了,轮到php传输过程了
$searchs = $_GET['search']; //传递搜索框过来的值
$searchs= trim($searchs);
//除去字符串两端空格
if (!$searchs){
echo '输入为空';
exit;
}
//这个设定了当用户没有输入或输入空格时的事件
$result = mysql_query("SELECT * FROM search where keyword like '%$searchs%' AND enter LIKE '%".$enter."%'");
//开始搜索并获取结果
echo "网页搜索结果<hr>";
//开始输出标题
if (mysql_num_rows($result) < 1) echo "无结果,去<a href='//baidu.com/s?word=".$searchs."'>百度</a>看看";
//当结果数量为0时的事件
//以下开始输出结果
while($row = mysql_fetch_array($result))
{
echo "<a href=".$row['enter'].">".$row['name']."</a>" ;
echo "<br />";
echo $row['text'] ;
echo "<hr />";
}
//与数据库断开连接
mysql_close($con);
//程序结束
?>
好了,所有的代码已经展现出来了,大家可以去千度搜索看看真实效果(注:部分地方可能进过改动)
声明:本文章所有内容均为手打,如有错误,欢迎到下方批评指正。本文章代码部分由千度提供,网址: http://qdss.xyz 。
版权声明:本文为Etomosun原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。