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();
?>
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.
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();
?>
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();
?>
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.
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.";
}
}
}
?>
Wasiliana Nasi
Contact Details
Phone: +255 700 000 000
Email: info@example.com
Location: Tanzania
8. admin.php
query("SELECT * FROM website_contents ORDER BY id DESC");
$message = isset($_GET['message']) ? clean($_GET['message']) : "";
?>
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 New Content
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
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
| ID | Full Name | 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.