首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

php 简单的搜索加分页

基础概念

PHP 是一种广泛使用的服务器端脚本语言,特别适用于 Web 开发。搜索加分页是一种常见的功能,允许用户在大量数据中搜索特定内容,并分页显示结果。

相关优势

  1. 用户体验:分页可以减少单次加载的数据量,提高页面加载速度,提升用户体验。
  2. 性能优化:分页可以减少数据库查询的数据量,提高服务器性能。
  3. 可读性:分页后的数据更易于阅读和管理。

类型

  1. 前端分页:通过 JavaScript 在客户端进行分页处理。
  2. 后端分页:通过服务器端进行分页处理,每次请求只返回当前页的数据。

应用场景

适用于需要展示大量数据的网站,如新闻网站、电商网站、论坛等。

示例代码

以下是一个简单的 PHP 后端分页示例:

代码语言:txt
复制
<?php
// 数据库连接
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 每页显示的记录数
$limit = 10;

// 获取当前页码,默认为第一页
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;

// 计算偏移量
$offset = ($page - 1) * $limit;

// 搜索关键词
$search = isset($_GET['search']) ? $_GET['search'] : '';

// 构建查询语句
$sql = "SELECT * FROM table_name WHERE column_name LIKE '%$search%' LIMIT $offset, $limit";
$result = $conn->query($sql);

// 获取总记录数
$total_sql = "SELECT COUNT(*) as total FROM table_name WHERE column_name LIKE '%$search%'";
$total_result = $conn->query($total_sql);
$total_row = $total_result->fetch_assoc();
$total = $total_row['total'];

// 计算总页数
$total_pages = ceil($total / $limit);

// 显示数据
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "ID: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
    }
} else {
    echo "0 结果";
}

// 显示分页链接
for ($i = 1; $i <= $total_pages; $i++) {
    echo "<a href='?page=$i&search=$search'>$i</a> ";
}

$conn->close();
?>

参考链接

常见问题及解决方法

  1. SQL 注入:上述示例代码存在 SQL 注入风险,应使用预处理语句来防止 SQL 注入。
代码语言:txt
复制
$stmt = $conn->prepare("SELECT * FROM table_name WHERE column_name LIKE ? LIMIT ?, ?");
$search = "%$search%";
$stmt->bind_param("sii", $search, $offset, $limit);
$stmt->execute();
$result = $stmt->get_result();
  1. 分页链接错误:确保分页链接正确传递参数,避免出现 404 错误。
  2. 性能问题:对于大数据量,可以考虑使用索引优化查询,或使用缓存技术(如 Redis)来提高性能。

通过以上方法,可以实现一个简单且安全的 PHP 搜索加分页功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • PHP 数据分页与搜索功能实现

    数据分页和搜索功能是 Web 应用中最常见的功能之一。无论是显示用户列表还是产品目录,分页和搜索功能都有助于提升用户体验和性能。...本篇文章将深入探讨 PHP 实现数据分页与搜索功能的原理和方法,帮助读者轻松掌握这些关键技术。1. 数据分页的基本原理分页的核心思想是将完整的数据集合分成多个小块,用户每次只需加载一部分数据。...数据分页实现以下是一个简单的分页实现示例:数据库表结构假设我们有一个名为 products 的表,结构如下:CREATE TABLE products ( id INT AUTO_INCREMENT...PHP 实现搜索与分页php endfor; ?> 5. 总结通过本文的讲解,我们了解了如何在 PHP 中实现数据分页与搜索功能。

    12600

    PHP+mysql数据库简单分页实例-sql分页

    前言 前几天冷月写了一篇博文《php基础编程-php连接mysql数据库-mysqli的简单使用》,很多小伙伴在学习后都知道了php与mysql数据库的连接,今天冷月分享一个简单的分页实例 首先,我们来看一下效果...这个案例其实很简单,那么,我们如何确定当前页所需要的数据是哪些呢?...主要用到的核心sql语句就是: SELECT * FROM 表名 LIMIT 起始位置,显示条数 我们应该在url后面采用GET的方式传递一个page的参数,比如:http:// page.php?...$conn) { var_dump("连接失败"); } //设置数据库的编码格式,防止乱码 mysqli_query($conn, "SET NAMES UTF8"); //编写sql获取分页数据...total_result['COUNT(*)']; $total_page = ceil($total / $pageSize); mysqli_close($conn); //3.显示数据 + 分页条

    2.2K10

    简单分页的性能优化

    采用网上常见的分页方式,在sqlserver事件分析器中观察,发现 几个主要的sql查询中,耗费最大的是查询所有的记录数。 将其从分页程序中剔除,前后的效果进行对照。...在30w左右的库中查询,大概时间消耗(单位:毫秒)如下: 改进前 第1页,返回100条记录,耗时:109.375 第5页,返回100条记录,耗时:109.375 第10页,返回100条记录,耗时:125...:203.125 第2500页,返回100条记录,耗时:250 第3000页,返回0条记录,耗时:140.625 第4000页,返回0条记录,耗时:156.25 如果sql语句包含了一个对普通字段的排序操作...,在where子句中使用非索引的字段,对性能影响不大。...但如果在Order by子句中使用了非索引的字段,将会大大影响效率。

    79890

    django分页Paginator的简单使用

    之前同事在项目中写了分页的一个函数,但是并没有返回结果集的总个数和总页数。所以我就想到了用 django 自带的分页类获取分页的数据。因为要分页的对象可能是个列表而不是 django 模型的查询集。...obj_list_repr), UnorderedObjectListWarning, stacklevel=3 ) 我自定义我的分页函数只是用了...be ordered, e.g. with an order_by() clause or with a default ordering on the model】.在一个 qq 群里有人给我解释分页必须要保证幂等...,换句话说是我第一页的内容不管查多少次,都是第一页的内容。...在这种情况下幂等是交由 order_by 的数据来保证的,在常见数据库中,保持一个序列顺序固定,是需要显示的 order by 来做,虽然我们查询的时候,默认会根据自增 ID 来做一次 order

    1.1K30

    vue实现简单的分页功能

    大家好,又见面了,我是你们的朋友全栈君。 分页其实就是对一组数据分组!而vue又刚好是数据驱动,所以我们只需要关注数据层就行了!...分页开始—> 变量: data() { return { // 假设这是后台传来的数据来源 data: [], // 所有页面的数据 totalPage...: "", // 默认当前显示第一页 currentPage: 0 }; }, 步骤1:计算页数 // 这里简单模拟一下后台传过来的数据 for (let...'],['第二页的数据'],['第三页数据']] // 根据每页显示数量 将后台的数据分割到 每一页,假设pageSize为5, 则第一页是1-5条,即slice(0,5),第二页是6-10...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    81920

    漫画:最简单的面试高频题 “加1”

    01 题目分析 第66题:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。...根据题目,我们需要加一!没错,加一很重要。因为它只是加一,所以我们会考虑到两种情况: 1、普通情况,除9之外的数字加1。 2、特殊情况,9加1。...(因为9加1需要进位) 所以我们只需要模拟这两种运算,就可以顺利进行求解! 02 题目图解 假设我们的数为[1,9,9] 大概是下面这样:(这个图解...真的有点太简单了...)...的含义是:将b切片中的元素追加到a中。 注:本系列所有教程中都不会用到复杂的语言特性,大家不需要担心没有学过go。算法思想最重要,使用go纯属本人爱好。

    41810

    带你学习最简单的分页插件PageHelper

    正文 引言: PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库, 例如mysql、 oracle、mariaDB、 DB2、 SQLite、Hsqldb...今天墨白就给大家聊聊PageHelper这款分页插件,下面是PageHelper开源地址,感兴趣的小伙伴可以去看一下 PageHelper在 github 的项目地址: https://github.com...这里我只介绍两个常用的,详细的可以去看官网API文档 helperDialect: 分页插件会自动检测当前的数据库链接,自动选择合适的分页方式。...你也可以实现 AbstractHelperDialect,然后配置该属性为实现类的全限定名称即可使用自定义的实现方法。 reasonable: 分页合理化参数,默认值为false。...4.在代码中使用的两种方式: 第一种 1// 此语句后的第一个select查询自动会被分页 2PageHelper.startPage(1, 10); 3// 这里的查询会自动分页 4List<Country

    90510

    使用 Django Pagination 实现简单的分页功能

    当网页上显示的数据过多时,通常需要进行分页显示。Django 内置的 Pagination 能够帮助我们实现简单的分页功能。...用 Paginator 给文章列表分页 使用上面的一些方法,我们可以实现一个类似于 Django 官方博客一样的简单分页效果,效果如下。...在模板中设置分页导航 接下来便是在模板中设置分页导航,比如上一页、下一页的按钮,以及显示一些页面信息。我们这里设置和 Django 官方博客那样的分页导航样式(具体的样式见上图)。...最终我们得到如下的分页效果: image.png 当然这只是一个简单示例,分页导航处的视觉效果并不是很好看,你可以自行为其添加 CSS 样式使其看上去更加美观。...进一步拓展 使用 Django 内置的 Pagination 只能实现上面的简单分页效果,但通常更加高级的分页效果应该像下图这样: image.png 当前页面高亮显示,且显示当前页面前后几页的页码,

    2K90

    不简单的付费搜索分析

    我们今天要向大家分享几个关于付费搜索分析的故事。 建立起付费搜索分析体系很简单,但是专栏作家Jacob Baadsgaard指出,如果您没有有效的利用这些数据的话,您很可能会错过一些提高业绩的良机。...从表面上来看,付费搜索分析好像很简单。您只要在页面上放上一个代码就万事大吉了,对吧? 不幸的是,建立起付费搜索分析相对简单,但同时以合适的方式利用这些数据来推动您的业务就没有那么容易了。...换言之,通过以一个相对简单的方式调整他们的广告目标,这样他们能够在提高24%的销售量的同时修正那些在广告消费上的浪费,最终他们减少了40%的订单成本!...我们很大一部分点击和转化来源于那些与我们的核心服务关系不大的搜索词。然而,这些搜索词暗藏了一个巨大的需求市场,而且我的客户能够轻松提供这样的服务来满足需求。...结论 建立起付费搜索分析体系很简单,如果您没有有效的利用这些数据的话,您很可能会错过那些能够提高您付费搜索账户业绩表现的良机。

    934100

    拼音搜索的简单实现方案

    文章时间:2020年5月28日 13:37:18 解决问题:在搜索框搜索某些东西的时候,我们经常输入了拼音,依然也可以显示搜索出的文字。...所用插件:ChinesePY.js 投稿人:梦群同学 ChinesePY 嵌入使用方法 下载完成后在项目 main.js 中引入 使用方法及返回格式 手写自己的根据拼音查询 公共函数 使用 ChinesePY.../ChinesePY' // 你的该文件位置 使用方法及返回格式 Pinyin.GetJP('中国') // 获取简拼 -> ZH (注意 简拼返回值为大写) Pinyin.GetQP('中国') //...获取全拼 -> zhongguo Pinyin.GetHP('中国') // 获取混拼 -> zhongg 手写自己的根据拼音查询 公共函数 Vue.prototype....// queryString -> 输入的字符串 使用 { methods: { handle() { const value = this.

    1.8K30

    ElasticSearch 简单的 搜索 聚合 分析

    一、 搜索 1.DSL搜索 全部数据没有任何条件 GET /shop/goods/_search { "query": { "match_all": {} } } 查询名称包含 xxx 的商品,同时按照价格降序排序..." : { "name" : "xxx" } }, "sort": [ { "price": "desc" } ] } 分页查询商品..." } }, "_source": ["name", "price"] } 2、query filter 搜索商品名称包含xxx,而且售价大于25元的商品 GET /shop...) 短语搜索的功能和全文检索相对应,全文检索会将输入的搜索串拆解开来,去倒排索引里面去一一匹配,只要能匹配上任意一个拆解后的单词,就可以作为结果返回 phrase search,要求输入的搜索串,必须在指定的字段文本中..."producer" : "xxx" } } } 5 highlight search(高亮搜索结果) 高亮优化: 方式1:传统plain高亮方式。

    56320
    领券