رستوران ساده با PHP و SQLite
ایجاد یک رستوران ساده با استفاده از PHP و دیتابیس SQLite، پروژهای جالب و آموزشی است. در اینجا، ما به بررسی مراحل لازم برای راهاندازی چنین سیستمی میپردازیم.
۱. نصب و راهاندازی
ابتدا باید اطمینان حاصل کنید که PHP و SQLite روی سرور شما نصب شده باشد. به سادگی، میتوانید با استفاده از XAMPP یا MAMP محیط محلی برای توسعه ایجاد کنید.
۲. ساخت دیتابیس
برای شروع، یک فایل SQLite جدید بسازید. به عنوان مثال، میتوانید فایلی به نام `restaurant.db` بسازید. سپس، جدولهای مورد نیاز را با استفاده از SQL ایجاد کنید:
```sql
CREATE TABLE menu (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
price REAL NOT NULL,
description TEXT
);
```
۳. کد PHP برای اتصال به دیتابیس
در این مرحله، یک فایل PHP جدید به نام `db.php` بسازید تا به دیتابیس متصل شوید:
```php
<?php
$dsn = 'sqlite:restaurant.db';
try {
$db = new PDO($dsn);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
?>
```
۴. اضافه کردن آیتمهای منو
برای افزودن آیتمها به منو، یک فرم ساده ایجاد کنید. در اینجا یک مثال از فرم HTML برای افزودن آیتم منو آورده شده است:
```html
<form action="add_item.php" method="post">
<input type="text" name="name" placeholder="نام آیتم" required>
<input type="number" name="price" placeholder="قیمت" required>
<textarea name="description" placeholder="توضیحات"></textarea>
<button type="submit">اضافه کردن</button>
</form>
```
۵. کد PHP برای ذخیرهسازی آیتم
در فایل `add_item.php`، کدی برای ذخیرهسازی آیتمهای منو بنویسید:
```php
<?php
include 'db.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$name = $_POST['name'];
$price = $_POST['price'];
$description = $_POST['description'];
$stmt = $db->prepare("INSERT INTO menu (name, price, description) VALUES (?, ?, ?)");
$stmt->execute([$name, $price, $description]);
}
?>
```
۶. نمایش منو
در نهایت، برای نمایش منو، میتوانید از کد زیر استفاده کنید:
```php
<?php
include 'db.php';
$stmt = $db->query("SELECT * FROM menu");
$menuItems = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($menuItems as $item) {
echo "<h3>{$item['name']}</h3>";
echo "<p>قیمت: {$item['price']} تومان</p>";
echo "<p>{$item['description']}</p>";
}
?>
```
نتیجهگیری
ایجاد یک رستوران ساده با PHP و SQLite میتواند به شما کمک کند تا با مفاهیم پایگاه داده و برنامهنویسی وب آشنا شوید. با اضافه کردن امکانات بیشتر مانند ویرایش و حذف آیتمها، میتوانید پروژه را گسترش دهید.
به یاد داشته باشید که امنیت و بهینهسازی نیز از اهمیت بالایی برخوردارند. برای مثال، استفاده از Prepared Statements به جلوگیری از حملات SQL Injection کمک میکند.
رستوران ساده در کد منبع PHP و دیتابیس SQLite
ایدهی ساخت یک رستوران ساده با استفاده از PHP و SQLite، یکی از پروژههای پرکاربرد در برنامهنویسی وب است، که به شدت برای یادگیری و تمرین مفید است. این پروژه معمولاً شامل چند بخش مهم است؛ مانند ثبت سفارش، مدیریت منو، و نمایش فهرست غذاها. در ادامه، به صورت کامل و جامع، همهی جوانب این پروژه را بررسی میکنیم.
ساختار کلی پروژه
در ابتدای کار، باید ساختار پوشهها و فایلها را مشخص کنیم. معمولاً پروژه شامل موارد زیر است:
- فایلهای PHP برای صفحات مختلف
- فایلهای CSS برای طراحی ظاهری
- فایلهای JavaScript برای تعاملهای کاربر
- فایل دیتابیس SQLite برای ذخیره دادهها
دیتابیس SQLite
دیتابیس در این پروژه، نقش مهمی دارد؛ چرا که اطلاعات منو، سفارشها و کاربران در آن ذخیره میشود. فرض کنیم که جدولهای اصلی، شامل موارد زیر هستند:
- menu: نگهداری آیتمهای غذا، شامل نام، قیمت و توضیحات
- orders: ثبت سفارشها، شامل آیتمها، تاریخ و وضعیت سفارش
- users: در صورت نیاز، برای مدیریت اکانتهای کاربری
برای ساخت دیتابیس، میتوانید از ابزارهای SQLite استفاده کنید یا فایل `.sqlite` را به صورت دستی ایجاد کنید. مثلا، کد SQL زیر، جدول منو را ایجاد میکند:
```sql
CREATE TABLE menu (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
price REAL NOT NULL,
description TEXT
);
```
کد منبع PHP
در این بخش، به نمونههایی از کدهای PHP برای عملیاتهای مختلف میپردازیم؛ مثل نمایش منو، ثبت سفارش و مدیریت دادهها.
اتصال به دیتابیس
برای اتصال به دیتابیس SQLite، از PDO استفاده میشود:
```php
<?php
try {
$pdo = new PDO('sqlite:restaurant.sqlite');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Connection failed: " . $e->getMessage());
}
?>
```
نمایش منوی غذاها
کد زیر، تمام غذاهای منو را از دیتابیس میآورد و نمایش میدهد:
```php
<?php
$stmt = $pdo->query("SELECT * FROM menu");
$menus = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($menus as $menu) {
echo "<div>";
echo "<h3>{$menu['name']}</h3>";
echo "<p>قیمت: {$menu['price']} تومان</p>";
echo "<p>{$menu['description']}</p>";
echo "<button onclick='addToCart({$menu['id']})'>افزودن به سبد</button>";
echo "</div>";
}
?>
```
ثبت سفارش
برای ثبت سفارش، فرم HTML ساخته و در فایل PHP، دادهها را دریافت و در دیتابیس ذخیره میکنیم:
```php
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$item_id = $_POST['item_id'];
$quantity = $_POST['quantity'];
$stmt = $pdo->prepare("INSERT INTO orders (item_id, quantity, order_date, status) VALUES (?, ?, datetime('now'), 'در حال پردازش')");
$stmt->execute([$item_id, $quantity]);
echo "سفارش ثبت شد!";
}
?>
```
نکات مهم و چالشها
- امنیت: حتماً باید دادهها را با prepared statements پاکسازی کنید تا از حملات SQL Injection جلوگیری شود.
- رابط کاربری: طراحی ساده و کاربرپسند، اهمیت فراوانی دارد. استایلها باید پاسخگو و جذاب باشند.
- پشتیبانی و توسعه: پروژه را ساده نگه دارید، اما قابلیت توسعه آسان را نیز در نظر بگیرید، مثلا افزودن قابلیتهای جدید مانند پرداخت آنلاین.
نتیجهگیری
در کل، ساخت یک رستوران ساده با PHP و SQLite، راه خوبی برای یادگیری برنامهنویسی وب است. این پروژه، شما را با مفاهیمی چون مدیریت دیتابیس، عملیات CRUD، و طراحی صفحات وب آشنا میکند. با توسعه و افزودن امکانات بیشتر، میتوانید آن را به یک سیستم کامل و حرفهای تبدیل کنید. در نهایت، این پروژه پایهای عالی برای شروع توسعه وبسایتهای مشابه است، و میتواند در پروژههای عملی و نمونهسازیهای سریع بسیار مفید باشد.