Mwongozo Kamili wa CRUD System (Create, Read, Update, Delete) kwa PHP na MySQL β Hatua kwa Hatua)
Jifunze kwa kina jinsi ya kutengeneza CRUD system (Create, Read, Update, Delete) kwa kutumia PHP na MySQL. Mwongozo kamili wenye mifano ya vitendo, security, na best practices.
π’ 1. Utangulizi
Baada ya kuelewa jinsi ya kuunganisha PHP na MySQL, hatua inayofuata muhimu sana ni kujifunza CRUD system.
CRUD ni kifupi cha:
C β Create (kuingiza data)
R β Read (kusoma data)
U β Update (kuhariri data)
D β Delete (kufuta data)
Hizi ndio operations 4 muhimu zinazotumika karibu kwenye kila system duniani:
β mfumo wa shule
β mfumo wa accounting
β mfumo wa hospitali
β mfumo wa blog
β mfumo wa login/register
πΉ 2. CRUD System ni Nini?
CRUD system ni mfumo unaokuwezesha:
kuongeza taarifa mpya
kuonyesha taarifa zilizopo
kubadilisha taarifa
kufuta taarifa
Mfano kwenye mfumo wa shule:
Operation Mfano
Create Kusajili mwanafunzi
Read Kuona orodha ya wanafunzi
Update Kubadilisha jina la mwanafunzi
Delete Kufuta mwanafunzi
πΉ 3. Vitu Tunavyotengeneza Kwenye Blog Hii
Tutatengeneza system ya:
π Student Management System
Yenye uwezo wa:
β Add student
β View students
β Edit student
β Delete student
πΉ 4. Kuandaa Database
π Tengeneza database:
CREATE DATABASE school_crud;
π Tengeneza table:
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
student_name VARCHAR(100),
gender VARCHAR(20),
class_name VARCHAR(50),
phone VARCHAR(20),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
πΉ 5. Folder Structure
crud_system/
β
βββ db.php
βββ index.php
βββ add.php
βββ edit.php
βββ delete.php
βββ view.php
πΉ 6. Database Connection (db.php)
<?php
$conn = mysqli_connect("localhost", "root", "", "school_crud");
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
?>
πΉ 7. CREATE β Kuongeza Data (add.php)
<?php
include 'db.php';
if (isset($_POST['save'])) {
$name = $_POST['name'];
$gender = $_POST['gender'];
$class = $_POST['class'];
$phone = $_POST['phone'];
$stmt = $conn->prepare("INSERT INTO students (student_name, gender, class_name, phone) VALUES (?, ?, ?, ?)");
$stmt->bind_param("ssss", $name, $gender, $class, $phone);
if ($stmt->execute()) {
echo "Student added successfully!";
} else {
echo "Error!";
}
}
?>
<form method="POST">
<input type="text" name="name" placeholder="Student Name" required><br>
<input type="text" name="gender" placeholder="Gender"><br>
<input type="text" name="class" placeholder="Class"><br>
<input type="text" name="phone" placeholder="Phone"><br>
<button name="save">Save</button>
</form>
πΉ 8. Maelezo ya CREATE
$_POST inachukua data kutoka form
prepare() inalinda dhidi ya SQL Injection
bind_param() inaunganisha variables na query
execute() ina-run query
πΉ 9. READ β Kuonyesha Data (view.php)
<?php
include 'db.php';
$result = mysqli_query($conn, "SELECT * FROM students ORDER BY id DESC");
?>
<table border="1">
<tr>
<th>ID</th>
<th>Name</th>
<th>Gender</th>
<th>Class</th>
<th>Phone</th>
<th>Action</th>
</tr>
<?php while($row = mysqli_fetch_assoc($result)) { ?>
<tr>
<td><?php echo $row['id']; ?></td>
<td><?php echo htmlspecialchars($row['student_name']); ?></td>
<td><?php echo htmlspecialchars($row['gender']); ?></td>
<td><?php echo htmlspecialchars($row['class_name']); ?></td>
<td><?php echo htmlspecialchars($row['phone']); ?></td>
<td>
<a href="edit.php?id=<?php echo $row['id']; ?>">Edit</a>
<a href="delete.php?id=<?php echo $row['id']; ?>">Delete</a>
</td>
</tr>
<?php } ?>
</table>
πΉ 10. Maelezo ya READ
SELECT * inachukua data zote
mysqli_fetch_assoc() inatoa data row kwa row
htmlspecialchars() inalinda dhidi ya XSS
πΉ 11. UPDATE β Ku-edit Data (edit.php)
<?php
include 'db.php';
$id = $_GET['id'];
$result = mysqli_query($conn, "SELECT * FROM students WHERE id=$id");
$row = mysqli_fetch_assoc($result);
if (isset($_POST['update'])) {
$name = $_POST['name'];
$gender = $_POST['gender'];
$class = $_POST['class'];
$phone = $_POST['phone'];
$stmt = $conn->prepare("UPDATE students SET student_name=?, gender=?, class_name=?, phone=? WHERE id=?");
$stmt->bind_param("ssssi", $name, $gender, $class, $phone, $id);
if ($stmt->execute()) {
echo "Updated successfully!";
}
}
?>
<form method="POST">
<input type="text" name="name" value="<?php echo $row['student_name']; ?>"><br>
<input type="text" name="gender" value="<?php echo $row['gender']; ?>"><br>
<input type="text" name="class" value="<?php echo $row['class_name']; ?>"><br>
<input type="text" name="phone" value="<?php echo $row['phone']; ?>"><br>
<button name="update">Update</button>
</form>
πΉ 12. Maelezo ya UPDATE
Tunachukua id kutoka URL
Tunachukua data ya student
Tunajaza form kwa data zilizopo
Tunafanya update kupitia prepared statement
πΉ 13. DELETE β Kufuta Data (delete.php)
<?php
include 'db.php';
$id = $_GET['id'];
$stmt = $conn->prepare("DELETE FROM students WHERE id=?");
$stmt->bind_param("i", $id);
if ($stmt->execute()) {
header("Location: view.php");
}
?>
πΉ 14. Maelezo ya DELETE
Inachukua id
Inafuta record husika
Inarudisha user kwenye page ya list
πΉ 15. Navigation (index.php)
<h2>CRUD System</h2>
<a href="add.php">Add Student</a><br>
<a href="view.php">View Students</a>
πΉ 16. Kuboresha UI kwa Bootstrap
Unaweza kuongeza Bootstrap:
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
Faida:
β UI nzuri
β responsive
β professional
πΉ 17. Security Muhimu Sana
1. SQL Injection
Usitumie:
$sql = "INSERT INTO students VALUES ('$name')";
Tumia:
$stmt = $conn->prepare(...);
2. XSS Attack
Tumia:
htmlspecialchars($row['student_name']);
3. Validation
if(empty($name)){
echo "Name required";
}
πΉ 18. Best Practices
β Tumia prepared statements
β Tumia include db.php
β Tumia validation
β Tumia redirect baada ya delete
β Tumia Bootstrap
πΉ 19. Advanced Features (Next Level)
Baada ya CRUD basic, unaweza kuongeza:
Search system
Pagination
Login system
Roles (Admin, Teacher, Student)
File upload
Reports
πΉ 20. Mfano wa Real System (Project Yako)
Kwa system yako ya shule:
CRUD inaweza kuwa:
β Add student
β Add marks
β Update marks
β Delete marks
β View reports
π Hitimisho
CRUD ni moyo wa kila system inayotumia MySQL.
Ukielewa CRUD:
β unaweza kutengeneza mfumo wowote
β unaweza kufanya automation ya data
β unaweza ku-build professional systems
π Unahitaji mfumo au website ya biashara?
Chagua huduma hapa chini kisha mteja bofya moja kwa moja kwenda kwenye ukurasa wa huduma au kuwasiliana nasi kwa WhatsApp.