Database ambayo tunakwend akuitumia ni ileile ya wanafunzi. Ila ongeza table nyingine iite majibu. Table hiyo iwe na column 3 ambazo ni id, jina, alama. Hakikisha column id ni autoincrement..
Project yetu tauwa na mfali 6 ambayo ni
- Add.php
- Delete.php
- Edit.php
- index.php
- Style.css
- Wanafnzi_class.php.
Kama nilivyo eleza kwene somo lilotanguliwa kuwa tutatumia mfumo wa OOP yaani object oriented programming. Hivyo kama utarejea project yetu ya CRUDE operation kwa kutumia OOP unaweza kuelewa zaidi.
index.php
Tengeneza faili liite index.php kisha pest code hizo hapo chini:-
<?php
require_once 'wanafunzi_class.php';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>Majibu Data</title>
</head>
<body>
<?php
echo '<table border="1" class="center">';
echo '<a href="add.php"><h1>Add data</h1></a>';
echo '<tr><th>ID</th>
<th>Name</th>
<th>Alama</th>
<th>Edit</th>
<th>Delete</th>
</tr>';
$majina = $db->majina_ya_wanafunzi();
foreach ($majina as $jina) {
$options = $db->majina_ya_wanafunzi();
//echo $jina[0] . ' ' . $jina[1] . '<br>';
echo '<tr>';
echo '<td>' .$jina['id'] . '</td>';
echo '<td>' . $jina['jina'] . '</td>';
echo '<td>' . $jina['alama'] . '</td>';
echo '<td><a href="edit.php?id='.$jina['id'].'">âœ</a> </td>';
echo '<td><a href="delete.php?id='.$jina['id'].'">âŒ</a> </td>';
echo '</tr>';
}
echo '</table>';
?>
</body>
</html>
add.php
Tengeneza faili liite add.php kisha pest code hizo hapo chini:-
<?php
require_once 'wanafunzi_class.php';
if (isset($_POST['submit'])){
// Insert data
$jina = $_POST['jina'];
$matokeo = $_POST['alama'];
$insertResult = $db->insertData($jina, $matokeo);
if ($insertResult) {
echo "<h1>Data inserted successfully!</h1>";
echo '<script>function quiz (){window.location.replace("index.php")}var myTimeout = setTimeout(quiz, 500)</script>';
} else {
echo "Error inserting data.";
}
}
?>
<br><br><br>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="style.css" rel="stylesheet">
<title>Styled Form</title>
</head>
<body>
<form action="" method="post">
<label for="jina">Jina</label><br>
<input type="text" name="jina"><br><br>
<label for="alama">Alama</label><br>
<input type="number" name="alama"><br><br>
<input type="submit" name="submit" value="Save">
</form>
</body>
</html>
edit.php
Tengeneza faili liite edit.php kisha pest code hizo hapo chini:-
<?php
require_once 'wanafunzi_class.php';
// Check if the form for editing is submitted
if (isset($_POST['edit_submit'])) {
$id_to_edit = $_POST['edit_id'];
$edited_jina = $_POST['edited_jina'];
$edited_matokeo = $_POST['edited_alama'];
// Edit data
$editResult = $db->editData($id_to_edit, $edited_jina, $edited_matokeo);
if ($editResult) {
echo "<h1>Data edited successfully!</h1>";
echo '<script>function quiz (){window.location.replace("index.php")}var myTimeout = setTimeout(quiz, 500)</script>';
} else {
echo "Error editing data.";
}
}
$majina = $db->to_be_edited($_GET['id']);
foreach ($majina as $jina) {
$options = $db->majina_ya_wanafunzi();
?>
<br><br><br>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Styled Form</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<form action="" method="post">
<!-- Fields for editing -->
<input type="hidden" name="edit_id" id="edit_id" value="<?php echo $jina['id']?>">
<label for="edited_jina">Edited Jina</label><br>
<input type="text" name="edited_jina" id="edited_jina" value="<?php echo $jina['jina']?>"><br><br>
<label for="edited_alama">Edited Alama</label><br>
<input type="number" name="edited_alama" id="edited_alama" value="<?php echo $jina['alama']?>"><br><br>
<!-- Submit button for editing -->
<input type="submit" name="edit_submit" value="Save">
</form>
</body>
</html>
<?php }
delete.php
Tengeneza faili liite delete.php kisa pest code hizo hapo chini:-
<?php
require_once 'wanafunzi_class.php';
// Check if the form for editing is submitted
if (isset($_GET['id'])) {
$id_to_delete = $_GET['id'];
$deleteResult = $db->deleteData($id_to_delete);
if ($deleteResult) {
echo "<h1 align='center'>Data deleted successfully!</h1>";
echo '<script>function quiz (){window.location.replace("index.php")}var myTimeout = setTimeout(quiz, 500)</script>';
} else {
echo "Error editing data.";
}
}
style.css
Tengeneza faili liite style.css isha pest code hizo hapo chini:-
body {
font-family: 'Arial', sans-serif;
background-color: #f4f4f4;
}
form {
max-width: 400px;
margin: 20px auto;
background-color: #fff;
padding: 20px;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
label {
font-weight: bold;
display: block;
margin-bottom: 5px;
}
input {
width: 100%;
padding: 8px;
margin-bottom: 10px;
box-sizing: border-box;
}
input[type="submit"] {
background-color: #3498db;
color: #fff;
cursor: pointer;
border: none;
padding: 10px;
border-radius: 5px;
}
input[type="submit"]:hover {
background-color: #2980b9;
}
h1{
text-align: center;
collapse: green;
}
table, th, td {
border: 1px solid black;
border-radius: 10px;
}
table.center {
margin-left: auto;
margin-right: auto;
}
wanafunzi_class.php
Sasa tengeneza class ya php kisha iite wanatunzi class. Jina la faili lisomeke wanafunzi_class.php kisha est code hizo hapo chini:-
<?php
class Wanafunzi
{
private $host = 'localhost';
private $username = 'root';
private $password = '';
private $database = 'wanafunzi';
private $db;
public function __construct()
{
try {
$dsn = "mysql:host={$this->host};dbname={$this->database}";
$this->db = new PDO($dsn, $this->username, $this->password);
$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
}
public function majina_ya_wanafunzi()
{
$select = "SELECT * FROM `majibu`";
$stmt = $this->db->query($select);
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
public function to_be_edited($pupilId)
{
$select = "SELECT * FROM `majibu` WHERE id = :pupilId";
$stmt = $this->db->prepare($select);
$stmt->bindParam(':pupilId', $pupilId, PDO::PARAM_INT);
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
public function insertData($jina, $matokeo)
{
$insert = "INSERT INTO `majibu` (`jina`, `alama`) VALUES (:jina, :matokeo)";
$stmt = $this->db->prepare($insert);
$stmt->bindParam(':jina', $jina, PDO::PARAM_STR);
$stmt->bindParam(':matokeo', $matokeo, PDO::PARAM_STR);
return $stmt->execute();
}
public function editData($id, $jina, $matokeo)
{
$update = "UPDATE `majibu` SET `jina` = :jina, `alama` = :matokeo WHERE `id` = :id";
$stmt = $this->db->prepare($update);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->bindParam(':jina', $jina, PDO::PARAM_STR);
$stmt->bindParam(':matokeo', $matokeo, PDO::PARAM_STR);
return $stmt->execute();
}
public function deleteData($id)
{
$delete = "DELETE FROM majibu WHERE `id` = :id";
$stmt = $this->db->prepare($delete);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
return $stmt->execute();
}
}
$db = new Wanafunzi();
Mwisho:
Code hizi nita zi upload kwenye maktaba yetu ya bongoclass. Kuifukia makataba yetu, angalia kwneye menu hapo juu bofya palipoandikwa download kisha bofya project. Katika somo linalofuata tutawenda ujfunza uhusu sqlte na jns navyoweza utuma wenye PDO