当前位置:首页 > 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);

分页导航

生成分页链接:

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;
}

更新数据

获取并更新指定记录:

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>

数据显示

渲染数据表格:

php实现分页增删改差

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记住密码怎么实现

使用Cookie实现记住密码功能 在PHP中,可以通过设置Cookie来记住用户的登录状态。以下是一个简单的实现方式: // 用户登录验证成功后 if ($login_success) {…

php验证码实现

php验证码实现

验证码实现方法 在PHP中实现验证码功能通常涉及生成随机字符串或数字,将其转换为图像,并通过会话(Session)进行验证。以下是几种常见的实现方式: 使用GD库生成图像验证码 GD库是PHP内置的…

php实现文件的下载

php实现文件的下载

PHP 实现文件下载的方法 在 PHP 中实现文件下载功能通常需要设置正确的 HTTP 头信息,并输出文件内容。以下是几种常见的实现方式: 使用 header() 函数强制下载 通过设置 Conte…

vue实现页面分页

vue实现页面分页

Vue实现页面分页的方法 使用Element UI的分页组件 Element UI提供了现成的分页组件el-pagination,适合快速集成。以下是一个示例代码: <template>…

php分页功能的实现

php分页功能的实现

分页功能的基本原理 分页功能的核心是通过SQL的LIMIT子句实现数据分段查询。LIMIT接受两个参数:起始位置偏移量和每页记录数。例如查询第2页(每页10条)的SQL语句为: SELECT * F…

php无法实现

php无法实现

PHP 是一种功能强大的服务器端脚本语言,能够实现多种功能,包括动态网页开发、数据库交互、文件操作等。如果遇到“无法实现”的问题,通常是由于以下原因之一: 环境配置问题 确保 PHP 环境正确安装和…