
Überblick
Dieses Material behandelt die Implementierung grundlegender CRUD-Funktionen (Create, Read, Update, Delete) unter Verwendung von nativem PHP, MySQL und Bootstrap als CSS-Framework. Die Verwendung von Bootstrap hilft dabei, responsive und ansprechende Benutzeroberflächen zu erstellen, ohne viel CSS-Code schreiben zu müssen. Dieses Praktikum zielt darauf ab, ein grundlegendes Verständnis für die Datenmanipulation in Datenbanken über eine saubere und professionelle Formularoberfläche zu vermitteln.
Lernziele
Nach Abschluss dieses Materials sollen die Studierenden in der Lage sein:
- Die grundlegenden Konzepte von CRUD und deren Anwendung in Webanwendungen zu erklären.
- Formularoberflächen mit Bootstrap zu erstellen.
- PHP mit MySQL für die Eingabe, Anzeige, Bearbeitung und Löschung von Daten zu integrieren.
- Eine grundlegende Formularvalidierung zu implementieren.
- Eine saubere und leicht verständliche Code-Struktur zu verwenden.
Praktisches Material
Was ist CRUD?
Bevor wir tiefer darauf eingehen, wie CRUD funktioniert, schauen wir uns zunächst an, was CRUD im Kern bedeutet. Wie bereits erwähnt, steht CRUD für vier zentrale Operationen im Datenmanagement:
- Create: Neue Daten hinzufügen
- Read: Vorhandene Daten lesen oder anzeigen
- Update: Vorhandene Daten aktualisieren oder ändern
- Delete: Daten aus dem System löschen
Diese vier Operationen sind grundlegende Elemente in nahezu allen datengetriebenen Anwendungen, wie z. B. Warenwirtschaftssystemen, Finanzanwendungen und sogar sozialen Medien. Zum Beispiel führen wir in sozialen Netzwerken CRUD-Prozesse aus, wenn wir ein Konto erstellen (Create), ein Profil ansehen (Read), einen Status aktualisieren (Update) oder einen Beitrag löschen (Delete).

Warum ist CRUD so wichtig?
CRUD vereinfacht nicht nur die Datenverwaltung, sondern stellt auch die Datenintegrität innerhalb von Anwendungen sicher. In der Softwareentwicklung hilft das CRUD-Konzept dabei, effiziente und leicht wartbare Anwendungen zu erstellen.
Funktion jeder CRUD-Operation
Create
Mit der Create-Funktion können Benutzer neue Datensätze in eine Datenbank einfügen. Dazu gehört das Eingeben von Daten, das Erstellen neuer Zeilen in einer Tabelle und das Festlegen von Werten für die Attribute (Spalten). Zum Beispiel werden beim Erstellen eines neuen Benutzerkontos Informationen wie Name, E-Mail-Adresse und Passwort in die Datenbank gespeichert.
Read
Die Read-Funktion ermöglicht es Benutzern, vorhandene Daten aus der Datenbank abzurufen oder darauf zuzugreifen. Dies geschieht beispielsweise beim Anzeigen von Datensätzen oder beim Suchen nach bestimmten Informationen. Beim Login greift die Anwendung beispielsweise auf die Benutzerdaten zu und zeigt diese an.
Update
Mit der Update-Funktion können vorhandene Daten geändert oder aktualisiert werden. Wenn ein Benutzer beispielsweise seine E-Mail-Adresse oder Profilinformationen ändern möchte, wird ein Update-Vorgang ausgeführt.
Delete
Die Delete-Funktion ermöglicht das Entfernen von Daten aus der Datenbank. Wenn ein Benutzer beispielsweise sein Konto löscht, wird dieser Datensatz aus der Datenbank entfernt.
Wie funktioniert CRUD?
Nachdem Sie verstanden haben, was CRUD ist, besteht der nächste Schritt darin, zu verstehen, wie es funktioniert. Jede Anwendung, die CRUD verwendet, verfügt über Funktionen oder Methoden zur Unterstützung dieser vier Operationen. Die Funktionsweise hängt häufig von der verwendeten Programmiersprache oder dem Framework ab.
In PHP kann CRUD beispielsweise über eine MySQL-Datenbankverbindung mithilfe grundlegender SQL-Abfragen implementiert werden. Dazu gehören das Hinzufügen, Lesen, Aktualisieren und Löschen von Daten.
Einfacher Ablauf von CRUD:
- Create: Benutzer geben neue Daten ein
- Read: Daten werden angezeigt
- Update: Daten werden geändert
- Delete: Daten werden gelöscht
Praktische Schritte
Die folgenden Schritte zeigen, wie man CRUD mit nativem PHP erstellt:
1. Datenbank vorbereiten
CREATE TABLE mahasiswa (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(100),
nim VARCHAR(20)
);2. Datenbankverbindung herstellen (connection/db.php)
<?php
$host = "localhost";
$user = "root";
$pass = "";
$db = "Latihan_login_db ";
$conn = mysqli_connect($host, $user, $pass, $db);
if (!$conn) {
die("Koneksi gagal: " . mysqli_connect_error());
}
3. Daten anzeigen (index.php)
<?php include "koneksi/db.php"; ?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Data Mahasiswa</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body class="container mt-5">
<h2>Data Mahasiswa</h2>
<a href="tambah.php" class="btn btn-primary mb-3">+ Tambah Mahasiswa</a>
<table class="table table-bordered">
<thead class="table-dark">
<tr><th>No</th><th>Nama</th><th>NIM</th><th>Aksi</th></tr>
</thead>
<tbody>
<?php
$no = 1;
$result = mysqli_query($conn, "SELECT \* FROM mahasiswa");
while ($row = mysql_fetc_assoc($result)) {
echo "<tr>
<td>$no</td>
<td>{$row['nama']}</td>
<td>{$row['nim']}</td>
<td>
<a href='edit.php?id={$row['id']}' class='btn btn-warning btn-sm'>Edit</a>
<a href='hapus.php?id={$row['id']}' class='btn btn-danger btn-sm' onclick='return confirm("Hapus data ini?")'>Hapus</a>
</td>
</tr>";
$no++;
}
?>
</tbody>
</table>
</body>
</html>
Im nächsten Schritt wird eine Hauptseite (index.php) erstellt, die alle Studentendaten aus der Datenbank anzeigt. Hier wird die Abfrage SELECT * FROM student verwendet, um alle Daten abzurufen. Die Ergebnisse werden anschließend in einer HTML-Tabelle dargestellt, die mit Bootstrap gestaltet ist.
Jede Datenzeile enthält die Schaltflächen „Bearbeiten“ und „Löschen“, die zu den Seiten edit.php bzw. delete.php führen und die ID als Parameter übergeben. Diese Seite repräsentiert die Read-Operation.

4. Daten hinzufügen (add.php)
<?php include "koneksi/db.php"; ?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Tambah Mahasiswa</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body class="container mt-5">
<h2>Tambah Data Mahasiswa</h2>
<form method="POST">
<div class="mb-3">
<label>Nama</label>
<input type="text" name="nama" class="form-control" required>
</div>
<div class="mb-3">
<label>NIM</label>
<input type="text" name="nim" class="form-control" required>
</div>
<button type="submit" name="simpan" class="btn btn-success">Simpan</button>
<a href="index.php" class="btn btn-secondary">Kembali</a>
</form>
<?php
if (isset($_POST['simpan'])) {
$nama = $_POST['nama'];
$nim = $_POS['nim'];
mysqli\_query($conn, "INSERT INTO mahasiswa (nama, nim) VALUES ('$nama', '$nim')");
echo "<div class='alert alert-success mt-3'>Data berhasil disimpan.</div>
<script>
alert('Data Berhasil Ditambah')
window.location.href = 'index.php'
</script>
";
}
?>
</body>
</html>
Zum Hinzufügen neuer Daten wird eine Seite add.php erstellt, die ein Formular mit zwei Eingabefeldern enthält: Name und Matrikelnummer.
Beim Absenden des Formulars verarbeitet PHP die Eingaben über die POST-Methode. Die Daten werden anschließend mit der SQL-AnweisungINSERT INTO student (name, matrikelnummer) VALUES (...) gespeichert.
Bei Erfolg wird eine Bestätigung angezeigt. Dies ist die Implementierung der Create-Funktion.

5. Daten bearbeiten (edit.php)
<?php
include "koneksi/db.php";
$id = $_GET['id'];
$data = mysqli_fetch_assoc(mysqli_query($conn, "SELECT * FROM mahasiswa WHERE id=$id"));
?>
<!DOCTYPE _html_>
<html _lang_="en">
<head>
<title>Edit Mahasiswa</title>
<link _href_="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" _rel_="stylesheet">
</head>
<body _class_="container mt-5">
<h2>Edit Data Mahasiswa</h2>
<form _method_="POST">
<div _class_="mb-3">
<label>Nama</label>
<input _type_="text" _name_="nama" _class_="form-control" _value_="<?= $data['nama'] ?>" _required_>
</div>
<div _class_="mb-3">
<label>NIM</label>
<input _type_="text" _name_="nim" _class_="form-control" _value_="<?= $data['nim'] ?>" _required_>
</div>
<button type="submit" name="update" class="btn btn-warning">Update</button>
<a _href_="index.php" _class_="btn btn-secondary">Kembali</a>
</form>
<?php
if (isset($_POST['update'])) {
$nama = $_POST['nama'];
$nim = $_POST['nim'];
mysqli_query($conn, "UPDATE mahasiswa SET nama='$nama', nim='$nim' WHERE id=$id");
echo "<div class='alert alert-success mt-3'>Data berhasil diupdate.</div>";
}
?>
</body>
</html>
Die Seite edit.php ermöglicht es Benutzern, vorhandene Daten zu ändern. Beim Klick auf die Schaltfläche „Bearbeiten“ wird die ID des Datensatzes über die URL übergeben.
Basierend auf dieser ID ruft PHP die bestehenden Daten ab und zeigt sie im Formular an. Nach der Änderung speichert die Anwendung die Daten mit einer UPDATE-Abfrage.
Dies stellt die Update-Funktion dar.

6. Daten löschen (delete.php)
Der letzte Schritt ist das Löschen von Daten. Beim Klick auf „Löschen“ wird der Benutzer zur Seite delete.php weitergeleitet, die die ID enthält.
PHP führt dann die AbfrageDELETE FROM student WHERE id=... aus, um den Datensatz zu entfernen.
Nach erfolgreichem Löschen wird der Benutzer zurück zur index.php-Seite geleitet. Dies ist die Delete-Funktion.


Here is a playlist reference for learning CRUD PHP Native (In Bahasa)
Referenzen
PHP and MySQL Tutorial: Creating a CRUD Application [New Student Registration Case Study]
What Is CRUD? Definition and Function of CRUD in Web Applications - CODEPOLITAN
What is CRUD? Meaning, Function, Examples, FAQs 2025 | RevoU