ساخت سیستم مدیریت محصولات با PHP: یک رویکرد جامع
سیستمهای مدیریت محصولات (Product Management Systems – PMS) ابزارهای حیاتی برای کسبوکارهایی هستند که با فروش محصولات سروکار دارند. این سیستمها امکان سازماندهی، ردیابی، و مدیریت اطلاعات مربوط به محصولات را فراهم میکنند. در این مقاله، به بررسی گامبهگام ساخت یک سیستم مدیریت محصولات با استفاده از PHP میپردازیم. این سیستم شامل قابلیتهای اصلی مانند افزودن، ویرایش، حذف، و نمایش محصولات خواهد بود.
۱. طراحی پایگاه داده
اولین قدم در ساخت هر سیستم، طراحی پایگاه داده است. برای سیستم مدیریت محصولات، یک جدول اصلی به نام `products` کافی است. این جدول باید شامل فیلدهای زیر باشد:
- `id`: شناسه یکتای محصول (INT, AUTO_INCREMENT, PRIMARY KEY)
- `name`: نام محصول (VARCHAR)
- `description`: توضیحات محصول (TEXT)
- `price`: قیمت محصول (DECIMAL)
- `category`: دستهبندی محصول (VARCHAR)
- `image`: نام فایل تصویر محصول (VARCHAR)
- `stock`: موجودی محصول (INT)
- `created_at`: تاریخ ایجاد محصول (TIMESTAMP)
- `updated_at`: تاریخ بهروزرسانی محصول (TIMESTAMP)
میتوانید این جدول را با استفاده از دستورات SQL زیر ایجاد کنید:
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
description TEXT,
price DECIMAL(10, 2) NOT NULL,
category VARCHAR(100),
image VARCHAR(255),
stock INT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
۲. اتصال به پایگاه داده
برای تعامل با پایگاه داده، نیاز به ایجاد یک اتصال دارید. در PHP، میتوانید از PDO (PHP Data Objects) برای این منظور استفاده کنید. کد زیر یک مثال ساده از اتصال به پایگاه داده MySQL با استفاده از PDO است:
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
به جای مقادیر `your_database_name`، `your_username` و `your_password`، اطلاعات مربوط به پایگاه داده خود را وارد کنید.
۳. ایجاد صفحات اصلی
سیستم مدیریت محصولات ما شامل صفحات زیر خواهد بود:
- `index.php`: نمایش لیست محصولات
- `add.php`: افزودن محصول جدید
- `edit.php`: ویرایش محصول
- `delete.php`: حذف محصول
۳.۱. index.php (نمایش لیست محصولات)
این صفحه لیست محصولات را از پایگاه داده دریافت و نمایش میدهد. کد PHP برای این صفحه به شرح زیر است:
query("SELECT * FROM products");
$products = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
?>
لیست محصولات
| نام | قیمت | دستهبندی | موجودی | عملیات |
|---|---|---|---|---|
| <a href="edit.php?id=">ویرایش | <a href="delete.php?id=" onclick="return confirm('آیا مطمئن هستید؟')">حذف |
۳.۲. add.php (افزودن محصول جدید)
این صفحه فرمی برای افزودن محصول جدید نمایش میدهد. کد PHP برای این صفحه به شرح زیر است:
prepare("INSERT INTO products (name, description, price, category, image, stock) VALUES (?, ?, ?, ?, ?, ?)");
$stmt->execute([$name, $description, $price, $category, $image, $stock]);
header("Location: index.php"); // بازگشت به لیست محصولات
exit;
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
}
?>
افزودن محصول جدید
۳.۳. edit.php (ویرایش محصول)
این صفحه فرمی برای ویرایش محصول نمایش میدهد. کد PHP برای این صفحه به شرح زیر است:
prepare("SELECT * FROM products WHERE id = ?");
$stmt->execute([$id]);
$product = $stmt->fetch(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST['name'];
$description = $_POST['description'];
$price = $_POST['price'];
$category = $_POST['category'];
$stock = $_POST['stock'];
// پردازش آپلود تصویر (در صورت وجود)
$image = $product['image']; // حفظ تصویر قبلی در صورت عدم آپلود جدید
if (isset($_FILES['image']) && $_FILES['image']['error'] == 0) {
$target_dir = 'uploads/';
$target_file = $target_dir . basename($_FILES['image']['name']);
move_uploaded_file($_FILES['image']['tmp_name'], $target_file);
$image = $target_file;
}
try {
$stmt = $pdo->prepare("UPDATE products SET name = ?, description = ?, price = ?, category = ?, image = ?, stock = ? WHERE id = ?");
$stmt->execute([$name, $description, $price, $category, $image, $stock, $id]);
header("Location: index.php"); // بازگشت به لیست محصولات
exit;
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
}
?>
ویرایش محصول
<input type="text" id="name" name="name" value="" required>
<input type="number" id="price" name="price" value="" required>
<input type="text" id="category" name="category" value="">
<img src="" alt="تصویر محصول" width="100">
<input type="number" id="stock" name="stock" value="">
۳.۴. delete.php (حذف محصول)
این صفحه محصول را از پایگاه داده حذف میکند. کد PHP برای این صفحه به شرح زیر است:
prepare("DELETE FROM products WHERE id = ?");
$stmt->execute([$id]);
header("Location: index.php"); // بازگشت به لیست محصولات
exit;
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
?>
۴. نکات تکمیلی
این یک سیستم مدیریت محصولات پایه است. برای بهبود آن، میتوانید قابلیتهای زیر را اضافه کنید:
- اعتبارسنجی ورودیها
- پیجینیشن (Pagination) برای لیست محصولات
- جستجو در محصولات
- مدیریت دستهبندیها
- امنیت بیشتر (مانند جلوگیری از SQL Injection)
- استفاده از فریمورکهای PHP (مانند Laravel یا Symfony)
با پیادهسازی این مراحل و افزودن قابلیتهای مورد نیاز، میتوانید یک سیستم مدیریت محصولات قدرتمند و کارآمد برای کسبوکار خود ایجاد کنید.
