PHP与MySQL实战项目

蓝色海洋 2021-12-22 ⋅ 14 阅读

引言

PHP和MySQL是一对非常经典的开发组合,广泛用于 Web 应用程序的开发。本文将介绍一个实战项目,涉及PHP和MySQL的使用,旨在帮助读者深入理解如何应用这两种技术来开发功能丰富的Web应用。

项目简介

我们将创建一个简单的任务管理系统。用户可以注册账户,登录系统后,可以创建、编辑和删除任务。每个任务包括标题、描述和截止日期等信息。用户可以查看他们自己创建的任务,也可以查看所有用户创建的任务。此外,用户还可以设置任务的状态,如完成或未完成。

准备工作

在开始项目之前,我们需要准备以下内容:

  1. PHP环境:安装PHP并确保它可以运行在您的开发环境中。
  2. MySQL数据库:安装MySQL并创建一个数据库,用于存储任务和用户信息。
  3. Web服务器:您可以选择使用Apache、Nginx等Web服务器来运行PHP文件。

创建数据库

首先,我们需要创建一个数据库,并定义任务和用户表。

CREATE DATABASE task_management;

USE task_management;

CREATE TABLE users (
  id INT PRIMARY KEY AUTO_INCREMENT,
  username VARCHAR(50) NOT NULL,
  password VARCHAR(100) NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE tasks (
  id INT PRIMARY KEY AUTO_INCREMENT,
  user_id INT NOT NULL,
  title VARCHAR(100) NOT NULL,
  description TEXT,
  due_date DATE,
  status ENUM('未完成', '已完成') DEFAULT '未完成',
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY (user_id) REFERENCES users(id)
);

上述SQL代码将创建一个名为task_management的数据库,并在其中创建了两个表:userstasksusers表用来存储用户信息,包括用户名和密码。tasks表用来存储任务信息,包括所属用户、标题、描述、截止日期和状态等。

PHP代码实现

我们将使用PHP来实现任务管理系统的功能。以下是一些关键的PHP代码片段。

连接到数据库

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "task_management";

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

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

上述代码将用于连接到MySQL数据库。请根据自己的实际情况修改$servername$username$password$dbname的值。

用户注册

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["register"])) {
    $username = $_POST["username"];
    $password = $_POST["password"];

    $sql = "INSERT INTO users (username, password) VALUES ('$username', '$password')";

    if ($conn->query($sql) === true) {
        echo "注册成功!";
    } else {
        echo "注册失败:" . $conn->error;
    }
}
?>
<form method="POST" action="">
    <input type="text" name="username" placeholder="用户名" required>
    <input type="password" name="password" placeholder="密码" required>
    <button type="submit" name="register">注册</button>
</form>

该代码片段用于处理用户注册表单的提交。数据将被插入到users表中,并在成功或失败后显示相应的消息。

创建任务

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["create_task"])) {
    $title = $_POST["title"];
    $description = $_POST["description"];
    $due_date = $_POST["due_date"];
    $user_id = $_SESSION["user_id"];

    $sql = "INSERT INTO tasks (user_id, title, description, due_date) VALUES ('$user_id', '$title', '$description', '$due_date')";

    if ($conn->query($sql) === true) {
        echo "任务创建成功!";
    } else {
        echo "任务创建失败:" . $conn->error;
    }
}
?>
<form method="POST" action="">
    <input type="text" name="title" placeholder="标题" required>
    <textarea name="description" placeholder="描述"></textarea>
    <input type="date" name="due_date" placeholder="截止日期" required>
    <button type="submit" name="create_task">创建任务</button>
</form>

该代码片段用于处理创建任务表单的提交。任务信息将被插入到tasks表中,并在成功或失败后显示相应的消息。

显示任务列表

<?php
$sql = "SELECT tasks.id, tasks.title, tasks.description, tasks.due_date, tasks.status, users.username FROM tasks LEFT JOIN users ON tasks.user_id = users.id ORDER BY tasks.created_at DESC";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        echo "<h2>{$row['title']}</h2>";
        echo "<p>描述:{$row['description']}</p>";
        echo "<p>截止日期:{$row['due_date']}</p>";
        echo "<p>状态:{$row['status']}</p>";
        echo "<p>创建者:{$row['username']}</p>";
        echo "<hr>";
    }
} else {
    echo "暂无任务!";
}
?>

该代码片段用于从数据库中检索任务,并将其信息显示在页面上。通过使用LEFT JOIN语句从users表中获取任务的创建者用户名。

结论

本文介绍了一个基于PHP和MySQL的实战项目,该项目展示了如何使用这两种技术来开发一个任务管理系统。通过这个项目,读者可以学习到如何连接到数据库、执行查询和插入操作,以及如何通过PHP来处理表单的提交和显示数据等。

虽然本文只是一个简单的示例,但它提供了一个很好的起点,可以用来扩展和改进以满足更多复杂的需求。希望本文能够帮助您更好地理解和应用PHP与MySQL。


全部评论: 0

    我有话说: