在 PHP 中制作一个简单的搜索函数
说到搜索,你最熟悉它。当你想知道某事、某事时,你可能会特意搜索它,而搜索作为用户必备的基本工具,它拥有庞大的知识库,通过各种联动技术,当你输入你想知道的关键词时,它基本上可以解释搜索结果来搜索你,虽然你的搜索行为,搜索服务器会有头脑风暴, 关键字逐个匹配各种结果。
开发环境:php5 + mysql5 + nginx1.16
数据库关键表设计
名称数组用于存储
搜索关键字有多种可能的单词,HREF数组用于存储网站地址以重定向查询结果,IMG数组用于存储网站的徽标或重要图片提示信息。
图像资源存储在项目的 img/search_img 文件夹中
网站主页代码
将
参数传递给 chksearch .php的搜索框代码级别
二级搜索框代码,处理并保存第一级搜索传递的关键字,并支持再次搜索关键字。
第 1 级搜索样式表
辅助搜索样式表
编写设计代码是为了查看结果。
打开一级搜索页面,代码设计需要考虑三种情况:1.没有输入关键字,2.输入关键字,数据库查询有结果,3.输入关键字,数据库查询没有结果。无需先输入关键字,单击即可直接搜索。
手动跳转到辅助搜索页面并准确检查并提示未输入关键字
输入“计算机”
关键字,正确查询数据库中丰富的“计算机”结果的数据库名称数组,并将其显示在文本和图片列表中。
输入关键字“地铁“,
系统提示”找不到此关键字的内容“,确实数据库插入数据时没有”地铁“字。
返回第一级搜索,输入关键字“google”,然后单击搜索。
手动跳转到二级搜索页面php 查询数据库,并保留主搜索页面传递的关键字,同时查询与关键字相关的结果。
测试关键字“mobile”以正确显示结果。
测试关键字“空调”以正确显示结果。
测试关键字“咖啡”以正确显示结果。
测试关键字“导航”以正确显示结果。
测试关键字“腾讯”以正确显示结果。
再次输入关键字“移动”,然后单击文本链接。
在新窗口中成功跳转到关键字所属的网站。
当我们想在搜索结果中突出显示关键字时,我们可以str_ireplace函数添加到 chksearch.pho 文件中。
搜索“计算机”以将关键字标记为黄色。
搜索苹果
再次搜索苹果
从搜索结果可以看出,关键词的中文大小写没有区分,结果集中的关键词可以准确标记。
其实我用 where 数组这样的 “% keyword%” SQL 句子来实现搜索功能,有一个bug就是输入 % 时会查询所有结果,这在用户端是不允许的,我们可以.php chksearch 对用户输入的关键字做一个字符串检查php 查询数据库,过滤掉一些非法字符。
PHP实现了一个简单的搜索功能,演示到此结束,感谢您的阅读。
PHP 加入 mysql
我已经写过一篇文章php查询数据库,这篇文章主要介绍从mysql查询后如何输出结果的问题。
一:mysqli_fetch_row();
查询结果:数组([0]=>小王)。
查询:
while ($row = mysqli_fetch_assoc($result)) {
$memberlist = $row[0];
}//end while()
二:mysqli_fetch_assos();
查询结果:数组([名称]=>小王)
)。
查询:
while ($row = mysqli_fetch_assoc($result)) {
$memberlist = $row['memberlist'];
}//end while()
三、mysqli_fetch_array();
查询结果:array([0]=> 晓王[名称]=>晓王)
)。
查询:
while ($row = mysqli_fetch_assoc($result)) {
$memberlist = $row['memberlist'];
$memberlist = $row[0];
}//end while()
四. fetch_array ();
查询结果:array([0]=> 晓王[名称]=>晓王)
)。
查询:
$sql = "select * from user";
$result = $conn->query($sql);
if ($result)
{
if ($result->num_rows>0)
{
while ($rows = $result->fetch_array()) {
print_r($rows);
echo "
rows['id']:".$rows['id'];
echo "
rows['name']:".$rows['name'];
echo "
rows['pwd']:".$rows['pwd'];
}//end while()
}else{
echo "
查询结果为空!";
}//end if()
}else{
echo "
查询失败!";
}//end if()
从内部可以看出,不同函数的输出格式也不同php查询数据库,mysqli_fetch_row() 返回按数字索引,mysqli_fetch_assos() 按关键字索引,mysqli_fetch_array() 和 fetch_array() 即使使用数字也使用关键字进行索引。