当前位置:首页 > PHP

php实现分页增删改差

2026-01-29 06:19:53PHP

PHP实现分页增删改查

分页增删改查(CRUD)是Web开发中的常见需求,以下是实现方法:

数据库连接

使用PDO连接数据库,确保安全性:

$dsn = 'mysql:host=localhost;dbname=test';
$user = 'username';
$pass = 'password';
try {
    $pdo = new PDO($dsn, $user, $pass);
} catch (PDOException $e) {
    die('Connection failed: ' . $e->getMessage());
}

分页查询

计算总记录数和分页参数:

$perPage = 10;
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$offset = ($page - 1) * $perPage;

$total = $pdo->query('SELECT COUNT(*) FROM products')->fetchColumn();
$totalPages = ceil($total / $perPage);

$stmt = $pdo->prepare('SELECT * FROM products LIMIT :offset, :perPage');
$stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
$stmt->bindValue(':perPage', $perPage, PDO::PARAM_INT);
$stmt->execute();
$products = $stmt->fetchAll(PDO::FETCH_ASSOC);

分页导航

生成分页链接:

php实现分页增删改差

echo '<div class="pagination">';
for ($i = 1; $i <= $totalPages; $i++) {
    echo '<a href="?page='.$i.'"'.($page==$i?' class="active"':'').'>'.$i.'</a>';
}
echo '</div>';

添加数据

处理表单提交并插入数据:

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['add'])) {
    $name = $_POST['name'];
    $price = $_POST['price'];

    $stmt = $pdo->prepare('INSERT INTO products (name, price) VALUES (?, ?)');
    $stmt->execute([$name, $price]);
    header('Location: '.$_SERVER['PHP_SELF']);
    exit;
}

更新数据

获取并更新指定记录:

php实现分页增删改差

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['update'])) {
    $id = $_POST['id'];
    $name = $_POST['name'];
    $price = $_POST['price'];

    $stmt = $pdo->prepare('UPDATE products SET name=?, price=? WHERE id=?');
    $stmt->execute([$name, $price, $id]);
    header('Location: '.$_SERVER['PHP_SELF']);
    exit;
}

删除数据

处理删除请求:

if (isset($_GET['delete'])) {
    $id = (int)$_GET['delete'];
    $stmt = $pdo->prepare('DELETE FROM products WHERE id=?');
    $stmt->execute([$id]);
    header('Location: '.$_SERVER['PHP_SELF']);
    exit;
}

表单模板

创建编辑表单:

<form method="post">
    <input type="hidden" name="id" value="<?=isset($editProduct['id'])?$editProduct['id']:''?>">
    <input type="text" name="name" value="<?=isset($editProduct['name'])?$editProduct['name']:''?>" required>
    <input type="number" name="price" value="<?=isset($editProduct['price'])?$editProduct['price']:''?>" required>
    <button type="submit" name="<?=isset($editProduct['id'])?'update':'add'?>">
        <?=isset($editProduct['id'])?'Update':'Add'?>
    </button>
</form>

数据显示

渲染数据表格:

echo '<table>';
echo '<tr><th>ID</th><th>Name</th><th>Price</th><th>Actions</th></tr>';
foreach ($products as $product) {
    echo '<tr>';
    echo '<td>'.$product['id'].'</td>';
    echo '<td>'.$product['name'].'</td>';
    echo '<td>'.$product['price'].'</td>';
    echo '<td><a href="?edit='.$product['id'].'">Edit</a> | ';
    echo '<a href="?delete='.$product['id'].'" onclick="return confirm(\'Are you sure?\')">Delete</a></td>';
    echo '</tr>';
}
echo '</table>';

注意事项

  • 所有用户输入必须经过验证和过滤
  • 使用预处理语句防止SQL注入
  • 考虑添加CSRF保护
  • 实现错误处理机制
  • 对于大型数据集考虑优化查询性能

标签: 分页php
分享给朋友:

相关文章

php实现树

php实现树

PHP实现树结构的方法 在PHP中实现树结构通常可以通过递归或迭代的方式完成。以下是几种常见的实现方法: 递归实现树结构 递归是处理树结构的自然方式,尤其适用于具有未知深度的树。 class Tr…

php实现定时任务

php实现定时任务

PHP 实现定时任务的几种方法 在 PHP 中实现定时任务可以通过多种方式完成,具体选择取决于项目需求和服务器环境。以下是常见的实现方法: 使用 Cron 任务 Cron 是 Linux 系统中常用…

php 登录实现

php 登录实现

PHP 登录实现 PHP 登录功能通常包括用户认证、会话管理和安全性措施。以下是实现 PHP 登录功能的关键步骤。 数据库准备 创建一个用户表存储用户信息,通常包括用户名、密码(加密存储)和其他必要…

js实现分页功能代码

js实现分页功能代码

分页功能实现方法 客户端分页(前端处理数据) 适用于数据量较小且已全部加载到前端的情况。 // 示例数据 const data = Array.from({length: 100}, (_, i)…

php实现mvc

php实现mvc

PHP 实现 MVC 架构 MVC(Model-View-Controller)是一种常用的软件设计模式,将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller…

php 实现md5

php 实现md5

使用 PHP 内置函数实现 MD5 PHP 提供了 md5() 函数,可以直接计算字符串的 MD5 哈希值。该函数接受一个字符串参数,返回 32 字符的十六进制哈希值。 $string = "H…