May 3, 2026 3 min read

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&quot; 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.

Share this post

Comments

0
No comments yet. Be the first to comment.

Continue Reading

Subscribe

Get new updates

Jiunge upokee posts mpya, tutorials, na updates za mifumo moja kwa moja kwenye email yako.

Faulink Support