آموزش ساخت سیستم مدیریت تاریخ تولد با PHP
این مقاله به آموزش گام به گام ساخت یک سیستم مدیریت تاریخ تولد با استفاده از زبان PHP و پایگاه داده MySQL میپردازد. هدف از این سیستم، ذخیره، ویرایش، حذف و نمایش اطلاعات تاریخ تولد افراد است. این سیستم میتواند به عنوان یک بخش کاربردی در برنامههای بزرگتر مانند سیستمهای مدیریت ارتباط با مشتری (CRM) یا سیستمهای منابع انسانی (HRM) مورد استفاده قرار گیرد.
پیشنیازها
برای دنبال کردن این آموزش، شما به موارد زیر نیاز دارید:
- یک سرور وب با PHP نصب شده (مانند Apache یا Nginx)
- یک پایگاه داده MySQL
- یک ویرایشگر متن یا IDE (مانند VS Code، Sublime Text یا PHPStorm)
- آشنایی مقدماتی با PHP و SQL
مرحله اول: طراحی پایگاه داده
ابتدا باید ساختار پایگاه داده را طراحی کنیم. یک جدول به نام birthdays ایجاد میکنیم که شامل فیلدهای زیر باشد:
id: شناسه یکتا برای هر رکورد (INT, AUTO_INCREMENT, PRIMARY KEY)name: نام فرد (VARCHAR(255))birthdate: تاریخ تولد فرد (DATE)notes: توضیحات اضافی (TEXT)
کد SQL برای ایجاد جدول:
CREATE TABLE birthdays (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
birthdate DATE NOT NULL,
notes TEXT
);
مرحله دوم: اتصال به پایگاه داده
در این مرحله، باید یک فایل PHP ایجاد کنیم که وظیفه اتصال به پایگاه داده را بر عهده داشته باشد. این فایل را میتوان به نام db_connect.php نامگذاری کرد.
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";
// ایجاد اتصال
$conn = new mysqli($servername, $username, $password, $dbname);
// بررسی اتصال
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
?>
به جای username، password و database_name، اطلاعات مربوط به پایگاه داده خود را وارد کنید.
مرحله سوم: ایجاد رابط کاربری
رابط کاربری سیستم شامل فرمی برای افزودن، ویرایش و حذف اطلاعات تاریخ تولد است. همچنین، باید یک صفحه برای نمایش لیست تاریخ تولدها داشته باشیم.
صفحه افزودن تاریخ تولد (add.php)
<?php
include 'db_connect.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST["name"];
$birthdate = $_POST["birthdate"];
$notes = $_POST["notes"];
$sql = "INSERT INTO birthdays (name, birthdate, notes) VALUES ('$name', '$birthdate', '$notes')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
?>
<form method="post" action="add.php">
<label for="name">نام:</label><br>
<input type="text" id="name" name="name"><br><br>
<label for="birthdate">تاریخ تولد:</label><br>
<input type="date" id="birthdate" name="birthdate"><br><br>
<label for="notes">توضیحات:</label><br>
<textarea id="notes" name="notes"></textarea><br><br>
<input type="submit" value="افزودن">
</form>
صفحه نمایش لیست تاریخ تولدها (index.php)
<?php
include 'db_connect.php';
$sql = "SELECT id, name, birthdate FROM birthdays";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table>";
echo "<tr>نام تاریخ تولد عملیات </tr>";
while($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td>" . $row["name"] . "</td>";
echo "<td>" . $row["birthdate"] . "</td>";
echo "<td><a href='edit.php?id=" . $row["id"] . "'>ویرایش</a> | <a href='delete.php?id=" . $row["id"] . "'>حذف</a></td>";
echo "</tr>";
}
echo "</table>";
} else {
echo "No birthdays found";
}
$conn->close();
?>
صفحه ویرایش تاریخ تولد (edit.php)
<?php
include 'db_connect.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$id = $_POST["id"];
$name = $_POST["name"];
$birthdate = $_POST["birthdate"];
$notes = $_POST["notes"];
$sql = "UPDATE birthdays SET name='$name', birthdate='$birthdate', notes='$notes' WHERE id=$id";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
$id = $_GET["id"];
$sql = "SELECT id, name, birthdate, notes FROM birthdays WHERE id=$id";
$result = $conn->query($sql);
if ($result->num_rows == 1) {
$row = $result->fetch_assoc();
} else {
echo "Record not found";
exit;
}
?>
<form method="post" action="edit.php">
<input type="hidden" id="id" name="id" value="<?php echo $row["id"]; ?>">
<label for="name">نام:</label><br>
<input type="text" id="name" name="name" value="<?php echo $row["name"]; ?>"><br><br>
<label for="birthdate">تاریخ تولد:</label><br>
<input type="date" id="birthdate" name="birthdate" value="<?php echo $row["birthdate"]; ?>"><br><br>
<label for="notes">توضیحات:</label><br>
<textarea id="notes" name="notes"><?php echo $row["notes"]; ?></textarea><br><br>
<input type="submit" value="ویرایش">
</form>
صفحه حذف تاریخ تولد (delete.php)
<?php
include 'db_connect.php';
$id = $_GET["id"];
$sql = "DELETE FROM birthdays WHERE id=$id";
if ($conn->query($sql) === TRUE) {
echo "Record deleted successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
header("Location: index.php");
exit;
?>
مرحله چهارم: تست سیستم
پس از ایجاد فایلهای PHP، باید سیستم را تست کنید. با استفاده از مرورگر وب، به صفحه index.php دسترسی پیدا کنید. باید لیست تاریخ تولدها را مشاهده کنید. همچنین، میتوانید با استفاده از فرمها، اطلاعات جدیدی را اضافه کنید، اطلاعات موجود را ویرایش کنید و اطلاعات را حذف کنید.
نکات تکمیلی
- برای بهبود امنیت سیستم، از توابع
mysqli_real_escape_stringبرای جلوگیری از حملات SQL Injection استفاده کنید. - برای بهبود تجربه کاربری، از CSS و JavaScript برای طراحی رابط کاربری جذابتر و تعاملیتر استفاده کنید.
- برای مدیریت خطاها، از بلوکهای
try...catchاستفاده کنید. - برای افزایش مقیاسپذیری سیستم، از تکنیکهای کشینگ و بهینهسازی پایگاه داده استفاده کنید.
این آموزش یک پایه قوی برای ساخت یک سیستم مدیریت تاریخ تولد با PHP ارائه میدهد. با استفاده از این پایه، میتوانید سیستم را گسترش دهید و ویژگیهای جدیدی را به آن اضافه کنید.
