Uko ndani ya app. Fungua kwenye browser kwa muonekano na downloads bora.
FAUSTINE MWOYA November 12, 2025 1 min read

Jinsi ya Kutengeneza Exam Results CRUD System

Exam Results CRUD System inawawezesha walimu au admin:

Kuongeza matokeo ya mwanafunzi.

Kuona orodha ya matokeo.

Kuhariri au kufuta matokeo (CRUD).

Kuonyesha statistics au averages (baadaye).

Mfumo huu utatumia:

PDO + Prepared Statements (salama)

Password Hashing kwa user login (ikiwa kuna authentication)

Bootstrap (optional) kwa interface nzuri

⚙️ 2. Database Setup

Tengeneza database na table ya exam_results:

CREATE DATABASE school_db;

USE school_db;

CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
class VARCHAR(50) NOT NULL
);

CREATE TABLE exam_results (
id INT AUTO_INCREMENT PRIMARY KEY,
student_id INT NOT NULL,
subject VARCHAR(50) NOT NULL,
marks INT NOT NULL,
exam_date DATE NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (student_id) REFERENCES students(id) ON DELETE CASCADE
);

💡 Maelezo:

student_id ni foreign key kuunganisha na students.

ON DELETE CASCADE inahakikisha matokeo ya mwanafunzi yanafutwa ikiwa mwanafunzi anaondolewa.

⚙️ 3. Database Connection (config.php)

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("❌ Connection failed: " . $e->getMessage());
}
?>

âž• 4. Add Exam Result (add_result.php)

query("SELECT * FROM students ORDER BY name ASC");
$students = $studentsStmt->fetchAll(PDO::FETCH_ASSOC);

if($_SERVER['REQUEST_METHOD'] === 'POST'){
$student_id = $_POST['student_id'];
$subject = trim($_POST['subject']);
$marks = $_POST['marks'];
$exam_date = $_POST['exam_date'];

$stmt = $pdo->prepare("INSERT INTO exam_results (student_id, subject, marks, exam_date) VALUES (:student_id, :subject, :marks, :exam_date)");
$stmt->execute([
'student_id' => $student_id,
'subject' => $subject,
'marks' => $marks,
'exam_date' => $exam_date
]);

echo "

✅ Exam result added successfully!

";
}
?>

âž• Add Exam Result

🔙 Back to Results

📄 5. View Exam Results (results.php)

query("SELECT er.id, s.name, s.class, er.subject, er.marks, er.exam_date
FROM exam_results er
JOIN students s ON er.student_id = s.id
ORDER BY er.exam_date DESC");
?>

📋 Exam Results

âž• Add Result

fetch(PDO::FETCH_ASSOC)): ?>
ID Student Class Subject Marks Exam Date Actions
= $row['id'] ?> = htmlspecialchars($row['name']) ?> = $row['class'] ?> = htmlspecialchars($row['subject']) ?> = $row['marks'] ?> = $row['exam_date'] ?> ✏️ Edit | 🗑️ Delete

✏️ 6. Edit Exam Result (edit_result.php)

prepare("SELECT * FROM exam_results WHERE id=:id");
$stmt->execute(['id'=>$id]);
$result = $stmt->fetch(PDO::FETCH_ASSOC);

// Get students for dropdown
$studentsStmt = $pdo->query("SELECT * FROM students ORDER BY name ASC");
$students = $studentsStmt->fetchAll(PDO::FETCH_ASSOC);

if($_SERVER['REQUEST_METHOD'] === 'POST'){
$stmt = $pdo->prepare("UPDATE exam_results SET student_id=:student_id, subject=:subject, marks=:marks, exam_date=:exam_date WHERE id=:id");
$stmt->execute([
'student_id'=>$_POST['student_id'],
'subject'=>$_POST['subject'],
'marks'=>$_POST['marks'],
'exam_date'=>$_POST['exam_date'],
'id'=>$id
]);
echo "

✅ Exam result updated successfully!

";
}
?>

✏️ Edit Exam Result

🔙 Back to Results

❌ 7. Delete Exam Result (delete_result.php)

prepare("DELETE FROM exam_results WHERE id=:id");
$stmt->execute(['id'=>$id]);

header("Location: results.php");
exit;
?>

🧠 8. Vidokezo vya Security

PDO + Prepared Statements – Kuzuia SQL Injection.

Input Validation – Hakikisha marks ni nambari sahihi.

Authentication – Zuia users wasio admin ku-access system.

HTTPS – Linda data ya mtumiaji wakati inapotumwa.

CSRF Protection – Kuongeza token kwa forms ili kuzuia attacks.

✅ 9. Hitimisho

Mfumo huu ni msingi wa Exam Results CRUD System.

Admin au teacher anaweza ku-add, edit, delete, na view results kwa urahisi.

PDO na prepared statements zinaboresha security na data integrity.

🔗 Tembelea:

👉 https://www.faulink.com/

Kwa mafunzo zaidi ya PHP, PDO, MySQL, na web systems development.

🚀 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.

Quick Actions