Home > Backend Development > PHP Tutorial > Build a Dynamic Content Management System with PHP

Build a Dynamic Content Management System with PHP

王林
Release: 2024-10-10 11:47:22
Original
973 people have browsed it

You can use PHP to build a dynamic content management system (CMS) that allows users to manage website content. The steps include: 1. Create a database 2. Connect to MySQL 3. Create a controller for creating articles 4. Create a controller for reading articles 5. Create a controller for updating articles 6. Create a controller for deleting articles Controller 7. Configure routing 8. Create views 9. Once completed, the CMS is ready to use.

Build a Dynamic Content Management System with PHP

Building a dynamic content management system using PHP

Introduction

A dynamic content management system (CMS) allows users to manage and maintain content on a website Content, no technical knowledge required. This article will guide you through building a simple CMS using PHP.

Practical Case

We will create a simple blog CMS that allows users to create, edit and delete blog posts.

Steps

1. Create database

CREATE TABLE articles (
  id INT AUTO_INCREMENT PRIMARY KEY,
  title VARCHAR(255) NOT NULL,
  content TEXT NOT NULL,
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
Copy after login

2. Connect to MySQL

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "my_cms";

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

// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
Copy after login

3. Create CreateController

class CreateController {
  public function store() {
    $title = $_POST['title'];
    $content = $_POST['content'];

    $sql = "INSERT INTO articles (title, content) VALUES (?, ?)";
    $stmt = $this->conn->prepare($sql);
    $stmt->bind_param("ss", $title, $content);
    $stmt->execute();

    header("Location: /");
    exit;
  }
}
Copy after login

4. Create ReadController

class ReadController {
  public function index() {
    $sql = "SELECT * FROM articles ORDER BY created_at DESC";
    $stmt = $this->conn->prepare($sql);
    $stmt->execute();

    $articles = $stmt->get_result()->fetch_all(MYSQLI_ASSOC);

    return view('articles/index', ['articles' => $articles]);
  }
}
Copy after login

5. Create UpdateController

class UpdateController {
  public function edit($id) {
    $sql = "SELECT * FROM articles WHERE id = ?";
    $stmt = $this->conn->prepare($sql);
    $stmt->bind_param("i", $id);
    $stmt->execute();

    $article = $stmt->get_result()->fetch_assoc();

    return view('articles/edit', ['article' => $article]);
  }

  public function update($id) {
    $title = $_POST['title'];
    $content = $_POST['content'];

    $sql = "UPDATE articles SET title = ?, content = ? WHERE id = ?";
    $stmt = $this->conn->prepare($sql);
    $stmt->bind_param("ssi", $title, $content, $id);
    $stmt->execute();

    header("Location: /");
    exit;
  }
}
Copy after login

6. Create DeleteController

class DeleteController {
  public function destroy($id) {
    $sql = "DELETE FROM articles WHERE id = ?";
    $stmt = $this->conn->prepare($sql);
    $stmt->bind_param("i", $id);
    $stmt->execute();

    header("Location: /");
    exit;
  }
}
Copy after login

7. Create route

Use your favorite routing system configuration routing.

8. Create Views

Create the view file using your favorite template engine.

9. Complete

Once you complete these steps, your CMS is ready!

The above is the detailed content of Build a Dynamic Content Management System with PHP. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template