برمجة نظام إدارة طلبات مطعم مع إمكانية الطلب عن بعد بPhp
محتويات
برمجة نظام إدارة طلبات مطعم مع إمكانية الطلب عن بعد بPhp
في عصر التكنولوجيا الحديثة، أصبحت التطبيقات الرقمية جزءاً أساسياً من تجربة العملاء في المطاعم. يوفر نظام إدارة طلبات المطعم مع إمكانية الطلب عن بعد الراحة للعملاء ويُسهم في تحسين الكفاءة التشغيلية للمطعم. سنستعرض في هذا المقال كيفية بناء نظام متكامل باستخدام HTML وCSS وPHP وSQL وMySQL.
تصميم قاعدة البيانات
تبدأ عملية بناء النظام بتصميم قاعدة البيانات. سنحتاج إلى عدة جداول لتخزين المعلومات المتعلقة بالطلبات، الأصناف، المستخدمين، والموظفين. يمكنك استخدام MySQL لتصميم قاعدة البيانات.
جدول الأصناف (Menu_Items)
CREATE TABLE Menu_Items (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
description TEXT,
price DECIMAL(10, 2) NOT NULL,
category VARCHAR(255)
);
جدول الطلبات (Orders)
CREATE TABLE Orders (
id INT AUTO_INCREMENT PRIMARY KEY,
customer_name VARCHAR(255) NOT NULL,
customer_phone VARCHAR(20),
order_date DATETIME DEFAULT CURRENT_TIMESTAMP,
status ENUM('Pending', 'Completed', 'Cancelled') DEFAULT 'Pending'
);
جدول تفاصيل الطلب (Order_Details)
CREATE TABLE Order_Details (
id INT AUTO_INCREMENT PRIMARY KEY,
order_id INT,
item_id INT,
quantity INT,
FOREIGN KEY (order_id) REFERENCES Orders(id),
FOREIGN KEY (item_id) REFERENCES Menu_Items(id)
);
إنشاء الواجهة الأمامية
HTML وCSS للواجهة الأمامية
يمكنك استخدام HTML وCSS لإنشاء واجهة المستخدم التي تتيح للعملاء تصفح القائمة وتقديم الطلبات.
صفحة القائمة (menu.html)
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>قائمة الطعام</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header>
<h1>قائمة الطعام</h1>
</header>
<main>
<div id="menu-items">
<!-- سيتم تحميل الأصناف هنا باستخدام PHP -->
</div>
<form id="order-form">
<h2>طلب جديد</h2>
<label for="name">الاسم:</label>
<input type="text" id="name" name="name" required>
<label for="phone">رقم الهاتف:</label>
<input type="text" id="phone" name="phone" required>
<button type="submit">تقديم الطلب</button>
</form>
</main>
</body>
</html>
ملف CSS (styles.css)
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
direction: rtl;
}
header {
background-color: #333;
color: #fff;
padding: 10px;
text-align: center;
}main {
padding: 20px;
}#menu-items {
margin-bottom: 20px;
}#order-form {
border: 1px solid #ccc;
padding: 20px;
border-radius: 5px;
}label {
display: block;
margin: 10px 0 5px;
}input[type="text"] {
width: 100%;
padding: 8px;
margin-bottom: 10px;
}
برمجة الواجهة الخلفية باستخدام PHP
الاتصال بقاعدة البيانات
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "restaurant_db";// إنشاء الاتصال
$conn = new mysqli($servername, $username, $password, $dbname);// التحقق من الاتصال
if ($conn->connect_error) {
die("فشل الاتصال: " . $conn->connect_error);
}
?>
تحميل الأصناف وعرضها
<?php
include 'db_connect.php';$sql = "SELECT * FROM Menu_Items";
$result = $conn->query($sql);if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<div class='menu-item'>";
echo "<h3>" . $row["name"] . "</h3>";
echo "<p>" . $row["description"] . "</p>";
echo "<p>سعر: " . $row["price"] . " ريال</p>";
echo "</div>";
}
} else {
echo "لا توجد أصناف لعرضها";
}
$conn->close();
?>
معالجة الطلبات
<?php
include 'db_connect.php';if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST['name'];
$phone = $_POST['phone'];
// إدخال الطلب
$sql = "INSERT INTO Orders (customer_name, customer_phone) VALUES ('$name', '$phone')";
if ($conn->query($sql) === TRUE) {
$order_id = $conn->insert_id;
echo "تم تقديم الطلب بنجاح! رقم الطلب: " . $order_id;
} else {
echo "خطأ: " . $sql . "<br>" . $conn->error;
}
$conn->close();
}
?>
التكامل مع تطبيقات الطلب عن بعد
يمكنك استخدام واجهات برمجة التطبيقات (APIs) لجعل النظام يتكامل مع تطبيقات الهواتف المحمولة، مما يتيح للعملاء تقديم الطلبات من أي مكان.
واجهة API بسيطة (api.php)
<?php
include 'db_connect.php';header('Content-Type: application/json');
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST['name'];
$phone = $_POST['phone'];
$sql = "INSERT INTO Orders (customer_name, customer_phone) VALUES ('$name', '$phone')";
if ($conn->query($sql) === TRUE) {
$response = array("status" => "success", "order_id" => $conn->insert_id);
} else {
$response = array("status" => "error", "message" => $conn->error);
}
echo json_encode($response);
$conn->close();
}
?>
بإمكانك استخدام هذا النظام كنقطة انطلاق لتطوير نظام إدارة طلبات مطعم أكثر تعقيداً وشمولاً. يمكنك إضافة ميزات مثل نظام الدفع الإلكتروني، تتبع الطلبات، وإدارة الطلبات من قبل الموظفين لتحسين تجربة المستخدم.