当前位置:首页 > PHP

php实现待办

2026-01-29 21:08:19PHP

PHP 实现待办事项功能

数据库设计

创建一个简单的待办事项表,包含基本字段如 ID、标题、描述、状态和创建时间。

CREATE TABLE todos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    description TEXT,
    status ENUM('pending', 'completed') DEFAULT 'pending',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

连接数据库

使用 PDO 或 MySQLi 连接数据库,确保连接安全。

$host = 'localhost';
$dbname = 'todo_app';
$username = 'root';
$password = '';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("Connection failed: " . $e->getMessage());
}

添加待办事项

创建一个表单提交待办事项,并将数据插入数据库。

php实现待办

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['add_todo'])) {
    $title = $_POST['title'];
    $description = $_POST['description'];

    $stmt = $pdo->prepare("INSERT INTO todos (title, description) VALUES (?, ?)");
    $stmt->execute([$title, $description]);
}

显示待办事项

从数据库中查询并显示待办事项列表。

$stmt = $pdo->query("SELECT * FROM todos ORDER BY created_at DESC");
$todos = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($todos as $todo) {
    echo "<div class='todo-item'>";
    echo "<h3>" . htmlspecialchars($todo['title']) . "</h3>";
    echo "<p>" . htmlspecialchars($todo['description']) . "</p>";
    echo "<span>Status: " . $todo['status'] . "</span>";
    echo "</div>";
}

更新待办事项状态

提供按钮或链接来更新待办事项的状态。

php实现待办

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['update_status'])) {
    $id = $_POST['id'];
    $status = $_POST['status'];

    $stmt = $pdo->prepare("UPDATE todos SET status = ? WHERE id = ?");
    $stmt->execute([$status, $id]);
}

删除待办事项

实现删除功能,从数据库中移除待办事项。

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

    $stmt = $pdo->prepare("DELETE FROM todos WHERE id = ?");
    $stmt->execute([$id]);
}

前端界面

创建一个简单的 HTML 表单和列表界面,与后端交互。

<form method="POST">
    <input type="text" name="title" placeholder="Title" required>
    <textarea name="description" placeholder="Description"></textarea>
    <button type="submit" name="add_todo">Add Todo</button>
</form>

<div id="todo-list">
    <?php foreach ($todos as $todo): ?>
        <div class="todo-item">
            <h3><?php echo htmlspecialchars($todo['title']); ?></h3>
            <p><?php echo htmlspecialchars($todo['description']); ?></p>
            <form method="POST">
                <input type="hidden" name="id" value="<?php echo $todo['id']; ?>">
                <select name="status">
                    <option value="pending" <?php echo $todo['status'] === 'pending' ? 'selected' : ''; ?>>Pending</option>
                    <option value="completed" <?php echo $todo['status'] === 'completed' ? 'selected' : ''; ?>>Completed</option>
                </select>
                <button type="submit" name="update_status">Update</button>
                <button type="submit" name="delete_todo">Delete</button>
            </form>
        </div>
    <?php endforeach; ?>
</div>

安全性考虑

确保输入数据经过验证和转义,防止 SQL 注入和 XSS 攻击。

$title = filter_input(INPUT_POST, 'title', FILTER_SANITIZE_STRING);
$description = filter_input(INPUT_POST, 'description', FILTER_SANITIZE_STRING);

完整示例

将上述代码整合到一个完整的 PHP 文件中,确保逻辑清晰且功能完整。

标签: php
分享给朋友:

相关文章

php 实现自动收货

php 实现自动收货

PHP 实现自动收货功能 自动收货功能通常用于电商系统,在订单超过一定时间未手动确认收货时自动完成订单。以下是实现方法: 数据库设计 需要订单表包含以下关键字段: CREATE TABLE ord…

php验证码实现

php验证码实现

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

php实现的分页

php实现的分页

PHP 实现分页的方法 基本分页逻辑 分页的核心在于计算总页数、当前页码以及数据偏移量。假设每页显示 10 条数据: $current_page = isset($_GET['page']) ? (…

php 函数实现

php 函数实现

PHP 函数实现基础 PHP 函数的定义使用 function 关键字,后跟函数名和参数列表。函数名不区分大小写,但建议保持一致。 function functionName($param1, $p…

php实现重定向

php实现重定向

使用header函数进行重定向 在PHP中,header()函数是实现重定向的常用方法。通过发送HTTP头信息Location,浏览器会自动跳转到指定URL。需确保在调用header()前没有输出任何…

php搜索功能的实现

php搜索功能的实现

实现PHP搜索功能的方法 数据库搜索 使用SQL的LIKE语句进行模糊匹配,适用于简单的搜索需求。 $searchTerm = $_GET['search']; $query = "SELECT *…