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

添加待办事项

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

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

更新待办事项状态

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

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实现树

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

php记住密码怎么实现

php记住密码怎么实现

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

php实现栈

php实现栈

栈的基本概念 栈(Stack)是一种遵循后进先出(LIFO)原则的数据结构。核心操作包括: push:元素入栈。 pop:元素出栈(返回并移除栈顶元素)。 peek:查看栈顶元素…

php购物车实现

php购物车实现

PHP购物车实现方法 使用PHP实现购物车功能可以通过多种方式完成,以下是几种常见的实现方法: Session存储购物车数据 利用PHP的$_SESSION超全局变量存储购物车数据是最简单的方法。用…

php 登录实现

php 登录实现

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

php 购物车实现

php 购物车实现

数据库设计 购物车功能通常需要设计数据库表存储商品和用户信息。常见的表包括products(商品表)、users(用户表)和cart(购物车表)。cart表通常包含字段:id(主键)、user_id(…