Uko ndani ya app. Fungua kwenye browser kwa muonekano na downloads bora.
May 3, 2026 2 min read

Jinsi ya Kutengeneza Website Yenye Database kwa PHP na MySQL Step by Step

Tutengeneze website yenye:

✅ Home page
✅ About page
✅ Services page
✅ Contact page
✅ Admin dashboard
✅ Admin anaongeza content
✅ Admin ana-edit content
✅ Admin ana-delete content
✅ Visitors wanaona content
✅ Contact form inahifadhi messages database
✅ Database connection kupitia config.php
✅ Bootstrap design
1. Folder Structure

Tengeneza folder ndani ya htdocs:

database_website/
│
├── config.php
├── index.php
├── about.php
├── services.php
├── contact.php
├── admin.php
├── add_content.php
├── edit_content.php
├── delete_content.php
└── messages.php
2. Database SQL

Fungua phpMyAdmin, kisha run SQL hii:

CREATE DATABASE database_website_db;

USE database_website_db;

CREATE TABLE website_contents (
id INT AUTO_INCREMENT PRIMARY KEY,
page_name VARCHAR(100) NOT NULL,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
status ENUM('active','inactive') DEFAULT 'active',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

CREATE TABLE contact_messages (
id INT AUTO_INCREMENT PRIMARY KEY,
full_name VARCHAR(150) NOT NULL,
email VARCHAR(150) NOT NULL,
phone VARCHAR(30),
subject VARCHAR(255),
message TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

INSERT INTO website_contents (page_name, title, content, status) VALUES
('home', 'Karibu Kwenye Website Yetu', 'Hii ni website yenye database iliyotengenezwa kwa PHP, MySQL na Bootstrap.', 'active'),
('about', 'Kuhusu Sisi', 'Sisi tunatoa huduma bora za teknolojia, elimu, mifumo ya shule na website za kisasa.', 'active'),
('services', 'Huduma Zetu', 'Tunatengeneza websites, school systems, accounting systems, blog systems na dashboards.', 'active');
3. config.php

connect_error) {
die("Database connection failed.");
}

$conn->set_charset("utf8mb4");

function clean($data) {
return htmlspecialchars(trim($data), ENT_QUOTES, 'UTF-8');
}
?>
4. index.php

prepare("SELECT * FROM website_contents WHERE page_name='home' AND status='active' ORDER BY id DESC LIMIT 1");
$stmt->execute();
$content = $stmt->get_result()->fetch_assoc();
?>

Home - Database Website

PHP

Tunatumia PHP kuendesha logic ya website upande wa server.

MySQL

MySQL hutumika kuhifadhi taarifa za website kwenye database.

Bootstrap

Bootstrap husaidia website ionekane vizuri kwenye simu na computer.

© Database Website

5. about.php

prepare("SELECT * FROM website_contents WHERE page_name='about' AND status='active' ORDER BY id DESC LIMIT 1");
$stmt->execute();
$content = $stmt->get_result()->fetch_assoc();
?>

About Us

© Database Website

6. services.php

prepare("SELECT * FROM website_contents WHERE page_name='services' AND status='active' ORDER BY id DESC LIMIT 1");
$stmt->execute();
$content = $stmt->get_result()->fetch_assoc();
?>

Services

Website Design

Website za kisasa zenye muonekano mzuri.

School Systems

Mifumo ya shule, marks, reports na accounts.

Blog Systems

Blog zenye admin panel na SEO features.

Accounting Systems

Mifumo ya malipo, michango na reports.

© Database Website

7. contact.php

prepare("INSERT INTO contact_messages (full_name, email, phone, subject, message) VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param("sssss", $full_name, $email, $phone, $subject, $msg);

if ($stmt->execute()) {
$message = "Ujumbe umetumwa kikamilifu.";
} else {
$errors[] = "Imeshindikana kutuma ujumbe.";
}
}
}
?>

Contact Us

Wasiliana Nasi

Contact Details

Phone: +255 700 000 000

Email: info@example.com

Location: Tanzania

© Database Website

8. admin.php

query("SELECT * FROM website_contents ORDER BY id DESC");
$message = isset($_GET['message']) ? clean($_GET['message']) : "";
?>

Admin Dashboard

Website Contents

num_rows > 0): ?> fetch_assoc()): ?>
ID Page Title Content Status Created Action
... Active Inactive Edit Delete
No content found.

9. add_content.php

prepare("INSERT INTO website_contents (page_name, title, content, status) VALUES (?, ?, ?, ?)");
$stmt->bind_param("ssss", $page_name, $title, $content, $status);

if ($stmt->execute()) {
header("Location: admin.php?message=Content added successfully");
exit;
} else {
$errors[] = "Imeshindikana kuhifadhi content.";
}
}
}
?>

Add Content

Add New Content

Cancel

10. edit_content.php

prepare("SELECT * FROM website_contents WHERE id=?");
$stmt->bind_param("i", $id);
$stmt->execute();
$item = $stmt->get_result()->fetch_assoc();

if (!$item) {
header("Location: admin.php?message=Content not found");
exit;
}

if (isset($_POST['update'])) {
$page_name = trim($_POST['page_name']);
$title = trim($_POST['title']);
$content = trim($_POST['content']);
$status = trim($_POST['status']);

if ($page_name == "") {
$errors[] = "Page name inahitajika.";
}

if ($title == "") {
$errors[] = "Title inahitajika.";
}

if ($content == "") {
$errors[] = "Content inahitajika.";
}

if (!in_array($status, ['active', 'inactive'])) {
$errors[] = "Status si sahihi.";
}

if (empty($errors)) {
$stmt = $conn->prepare("UPDATE website_contents SET page_name=?, title=?, content=?, status=? WHERE id=?");
$stmt->bind_param("ssssi", $page_name, $title, $content, $status, $id);

if ($stmt->execute()) {
header("Location: admin.php?message=Content updated successfully");
exit;
} else {
$errors[] = "Imeshindikana ku-update content.";
}
}
} else {
$page_name = $item['page_name'];
$title = $item['title'];
$content = $item['content'];
$status = $item['status'];
}
?>

Edit Content

Edit Content

Cancel

11. delete_content.php

prepare("DELETE FROM website_contents WHERE id=?");
$stmt->bind_param("i", $id);

if ($stmt->execute()) {
header("Location: admin.php?message=Content deleted successfully");
exit;
} else {
header("Location: admin.php?message=Failed to delete content");
exit;
}
?>
12. messages.php

query("SELECT * FROM contact_messages ORDER BY id DESC");
?>

Contact Messages

Contact Messages

num_rows > 0): ?> fetch_assoc()): ?>
ID Full Name Email Phone Subject Message Date
...
No messages found.

13. Jinsi ya Ku-run Website

Fuata hatua hizi:

1. Weka folder database_website ndani ya htdocs.
2. Washa Apache na MySQL kwenye XAMPP.
3. Fungua phpMyAdmin.
4. Run SQL ya database.
5. Fungua browser.

Public website:

http://localhost/database_website/

Admin dashboard:

http://localhost/database_website/admin.php
14. Muhimu Sana

Hii ni version ya kujifunzia. Kwenye production ongeza:

✅ Admin login
✅ Password hashing
✅ Sessions
✅ CSRF protection
✅ Upload image security
✅ HTTPS
✅ SEO friendly URLs
✅ Sitemap.xml
✅ Robots.txt
✅ User roles
15. Hitimisho

Sasa una website kamili yenye database inayoweza:

✅ Kuonyesha content kutoka database
✅ Kuongeza content kupitia admin
✅ Ku-edit content
✅ Ku-delete content
✅ Kupokea contact messages
✅ Kuonyesha pages za Home, About, Services na Contact
✅ Kutumia PHP + MySQL + Bootstrap

Hii ndiyo foundation ya kutengeneza website kubwa kama blog, school website, company website, news website au admin dashboard.

🚀 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