php实现排序功能(提供全部)

作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人)


前言

和大家一起完成php+mysqli排序功能的实现.

一、sql:

-- phpMyAdmin SQL Dump
-- version 4.5.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: 2022-03-17 17:19:09
-- 服务器版本: 10.1.13-MariaDB
-- PHP Version: 5.6.21

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `a`
--

-- --------------------------------------------------------

--
-- 表的结构 `search`
--

CREATE TABLE `search` (
  `id` int(11) NOT NULL DEFAULT '0',
  `content` text COLLATE utf8_vietnamese_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_vietnamese_ci;

--
-- 转存表中的数据 `search`
--

INSERT INTO `search` (`id`, `content`) VALUES
(666, 'cyg'),
(2, 'liwen'),
(555, 'liwen&cyg');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

二、使用步骤

核心问题:
1.怎么链接数据库呢?

$link=mysqli_connect('localhost','root','','a');

解析:链接数据库,在自己的电脑本地地址上localhost。数据库软件用户名:root.密码"", 数据库名:a
2.怎么设置链接的数据库的字符编码呢?

mysqli_set_charset($link,'utf8');

设置这种utf8编码,不至于有汉字乱码。
3.怎么运行php中的sql呢?

mysqli_query($link,$sql);

解析:第一个参数是数据库链接赋值的变量。第二个参数是sql语句变量

4.怎么在插入语句中写变量呢?

$sql = "INSERT INTO search(id,content)
VALUES ('{$id}','{$content}')";

解析:按照这种格式来就行了

5.排序的sql语句,升序怎么写?从小到大的是升序。越来越大

$sql = "SELECT id,content FROM search ORDER BY id";

6.从大到小的降序sql怎么写?越来越小

$sql = "SELECT id,content FROM search ORDER BY id desc";

7.mysqli_query遍历出来的数据要转化为数组才能运行.

$row=mysqli_fetch_array($result)

解析:因为foreach不支持mysqli_query数据直接输出

1.cyg.php

代码如下(示例):

<?php
$link=mysqli_connect('localhost','root','','a');
//然后是指定php链接数据库的字符集
mysqli_set_charset($link,'utf8');
$sql="select * from search";
$result=mysqli_query($link,$sql);//运行sql

?>
<!--显示的效果-->
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<table border="1" cellpadding="5">
		<tr>
			<td>id</td>
			<td>标题</td>
			<td>内容</td>
		
		<?php 
			while ($row=mysqli_fetch_array($result)) {//把对象变成数组输出,不然会报错哦
				
		?>
		<tr>
			<td><?=$row['id'];?></td>
			<td><?=$row['content'];?></td>

			
		</tr>
		<?php 
		}
		?>
		<td><a href="create.php">创建才能排序哦</a></td>
			<td><a href="asc.php">升序</a></td><!--从小到大-->
			<td><a href="desc.php">降序</a></td><!--从大到小-->
		</tr>
	</table>
</body>
</html>

2.create.php

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<form action="create.php" method="POST">
	<input type="text" name="id">
		<input type="text" name="content">
		
		<input type="submit" value="提交">
	</form>
</body>
</html>
<?php
if(!$_POST['content']||!$_POST['id'])
{
exit();
}
$content=$_POST['content'];
$id=$_POST['id'];

$link=mysqli_connect('localhost','root','','a');
//然后是指定php链接数据库的字符集
mysqli_set_charset($link,'utf8');
$sql = "INSERT INTO search(id,content)
VALUES ('{$id}','{$content}')";
 
$result=mysqli_query($link,$sql);
echo "<script>alert('创建成功');</script>";
?>
<button><a href="cyg.php">返回</a></button>

2.asc.php

<?php
$link=mysqli_connect('localhost','root','','a');
//然后是指定php链接数据库的字符集
mysqli_set_charset($link,'utf8');
$sql = "SELECT id,content FROM search ORDER BY id";
 
$result=mysqli_query($link,$sql);

?>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<table border="1" cellpadding="5">
		<tr>
			<td>id</td>
			<td>标题</td>
			<td>内容</td>
		
		<?php 
			while ($row=mysqli_fetch_array($result)) {//把对象编程数组输出,不然会报错哦
				
		?>
		<tr>
			<td><?=$row['id'];?></td>
			<td><?=$row['content'];?></td>

			
		</tr>
		<?php 
		}
		?>
		<td><a href="create.php">创建才能排序哦</a></td>
			<td><a href="asc.php">升序</a></td><!--从小到大-->
			<td><a href="desc.php">降序</a></td><!--从大到小-->
		</tr>
	</table>
</body>
</html>

2.desc.php

<?php
$link=mysqli_connect('localhost','root','','a');
//然后是指定php链接数据库的字符集
mysqli_set_charset($link,'utf8');
$sql = "SELECT id,content FROM search ORDER BY id desc";
 
$result=mysqli_query($link,$sql);

?>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<table border="1" cellpadding="5">
		<tr>
			<td>id</td>
			<td>标题</td>
			<td>内容</td>
		
		<?php 
			while ($row=mysqli_fetch_array($result)) {//把对象编程数组输出,不然会报错哦
				
		?>
		<tr>
			<td><?=$row['id'];?></td>
			<td><?=$row['content'];?></td>

			
		</tr>
		<?php 
		}
		?>
		<td><a href="create.php">创建才能排序哦</a></td>
			<td><a href="asc.php">升序</a></td><!--从小到大-->
			<td><a href="desc.php">降序</a></td><!--从大到小-->
		</tr>
	</table>
</body>
</html>

总结

讲解完了,谢谢大家的访问。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 19
    评论
实现猜你想搜的功能可以使用 PHP 的模糊匹配功能和数据库查询语句。以下是一个简单的实现步骤: 1. 获取用户输入的关键词 2. 使用模糊查询语句在数据库中查找与用户输入关键词相关的所有记录。如: ```sql SELECT * FROM table_name WHERE column_name LIKE '%keyword%'; ``` 3. 对查询结果进行处理,提取出所有相关的关键词,并统计它们出现的次数。 4. 对出现次数最多的关键词进行排序,然后返回前几个结果作为猜你想搜的关键词。 以下是一个简单的 PHP 实现代码: ```php <?php // 获取用户输入的关键词 $keyword = $_POST['keyword']; // 连接数据库 $conn = mysqli_connect("localhost", "username", "password", "database_name"); // 使用模糊查询语句查找与用户输入关键词相关的所有记录 $sql = "SELECT * FROM table_name WHERE column_name LIKE '%".$keyword."%'"; $result = mysqli_query($conn, $sql); // 处理查询结果,提取出所有相关的关键词,并统计它们出现的次数 $keywords = array(); while ($row = mysqli_fetch_assoc($result)) { $title = $row['title']; $description = $row['description']; $content = $row['content']; $words = explode(" ", $title." ".$description." ".$content); foreach ($words as $word) { if (strpos($word, $keyword) !== false) { if (isset($keywords[$word])) { $keywords[$word]++; } else { $keywords[$word] = 1; } } } } // 对出现次数最多的关键词进行排序,然后返回前几个结果作为猜你想搜的关键词 arsort($keywords); $guesses = array_slice(array_keys($keywords), 0, 5); // 输出猜你想搜的结果 echo "猜你想搜:"; foreach ($guesses as $guess) { echo "<a href='search.php?keyword=".$guess."'>".$guess."</a> "; } ?> ``` 在上面的代码中,我们使用了 explode() 函数将标题、描述和内容合并为一个字符串,并以空格为分隔符,将它们分割成单词。然后使用 strpos() 函数判断每个单词是否包含用户输入的关键词,如果是,则将它们加入到关键词数组中,并统计它们出现的次数。最后使用 arsort() 函数对关键词数组按照出现次数进行排序,然后使用 array_slice() 函数返回前 5 个结果作为猜你想搜的关键词。
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贵哥的编程之路(热爱分享)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值