الجزء 6: تنفيذ عمليات CRUD (إنشاء، قراءة، تعديل، حذف)

Amine
20/09/2024

الفئات (عرض القائمة، إنشاء، تعديل، حذف)

عرض الفئات (categories/index.php)

لإظهار قائمة الفئات من قاعدة البيانات، استخدم الكود التالي في ملف categories/index.php:

<?php
// categories/index.php
include '../includes/header.php';
include '../includes/db_connect.php';

// جلب جميع الفئات
$stmt = $pdo->query('SELECT * FROM categories');
$categories = $stmt->fetchAll();
?>
<div class="flex justify-between mb-4">
    <h2 class="text-2xl font-semibold">Categories</h2>
    <a href="create.php" class="bg-green-500 text-white px-4 py-2 rounded">Add Category</a>
</div>
<table class="min-w-full bg-white">
    <thead>
        <tr>
            <th class="py-2">ID</th>
            <th class="py-2">Name</th>
            <th class="py-2">Actions</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach ($categories as $category): ?>
            <tr class="text-center border-t">
                <td class="py-2"><?php echo htmlspecialchars($category['id']); ?></td>
                <td class="py-2"><?php echo htmlspecialchars($category['name']); ?></td>
                <td class="py-2">
                    <a href="edit.php?id=<?php echo $category['id']; ?>" class="bg-blue-500 text-white px-2 py-1 rounded">Edit</a>
                    <a href="delete.php?id=<?php echo $category['id']; ?>" class="bg-red-500 text-white px-2 py-1 rounded" onclick="return confirm('Are you sure you want to delete this category?');">Delete</a>
                </td>
            </tr>
        <?php endforeach; ?>
    </tbody>
</table>
<?php include '../includes/footer.php'; ?>

إنشاء فئة جديدة (categories/create.php)

لإضافة فئة جديدة، استخدم الكود التالي في categories/create.php:

<?php
// categories/create.php
include '../includes/header.php';
include '../includes/db_connect.php';

$name = '';
$error = '';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $name = trim($_POST['name']);

    if (empty($name)) {
        $error = 'Category name is required.';
    } else {
        // إدخال البيانات في قاعدة البيانات
        $stmt = $pdo->prepare('INSERT INTO categories (name) VALUES (:name)');
        $stmt->execute(['name' => $name]);
        header('Location: index.php');
        exit();
    }
}
?>
<div class="max-w-md mx-auto bg-white p-6 rounded shadow">
    <h2 class="text-2xl font-semibold mb-4">Add New Category</h2>
    <?php if ($error): ?>
        <div class="bg-red-100 text-red-700 p-2 mb-4 rounded">
            <?php echo htmlspecialchars($error); ?>
        </div>
    <?php endif; ?>
    <form method="POST" action="">
        <div class="mb-4">
            <label class="block text-gray-700">Name</label>
            <input type="text" name="name" value="<?php echo htmlspecialchars($name); ?>" class="w-full px-3 py-2 border rounded" required>
        </div>
        <div class="flex justify-end">
            <button type="submit" class="bg-blue-500 text-white px-4 py-2 rounded">Add Category</button>
        </div>
    </form>
</div>
<?php include '../includes/footer.php'; ?>

تعديل فئة (categories/edit.php)

لتعديل فئة موجودة، استخدم الكود التالي في categories/edit.php:

<?php
// categories/edit.php
include '../includes/header.php';
include '../includes/db_connect.php';

if (!isset($_GET['id'])) {
    header('Location: index.php');
    exit();
}

$id = $_GET['id'];
$error = '';

// جلب الفئة الحالية
$stmt = $pdo->prepare('SELECT * FROM categories WHERE id = :id');
$stmt->execute(['id' => $id]);
$category = $stmt->fetch();

if (!$category) {
    echo "Category not found.";
    exit();
}

$name = $category['name'];

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $name = trim($_POST['name']);

    if (empty($name)) {
        $error = 'Category name is required.';
    } else {
        // تحديث البيانات في قاعدة البيانات
        $stmt = $pdo->prepare('UPDATE categories SET name = :name WHERE id = :id');
        $stmt->execute(['name' => $name, 'id' => $id]);
        header('Location: index.php');
        exit();
    }
}
?>
<div class="max-w-md mx-auto bg-white p-6 rounded shadow">
    <h2 class="text-2xl font-semibold mb-4">Edit Category</h2>
    <?php if ($error): ?>
        <div class="bg-red-100 text-red-700 p-2 mb-4 rounded">
            <?php echo htmlspecialchars($error); ?>
        </div>
    <?php endif; ?>
    <form method="POST" action="">
        <div class="mb-4">
            <label class="block text-gray-700">Name</label>
            <input type="text" name="name" value="<?php echo htmlspecialchars($name); ?>" class="w-full px-3 py-2 border rounded" required>
        </div>
        <div class="flex justify-end">
            <button type="submit" class="bg-blue-500 text-white px-4 py-2 rounded">Update Category</button>
        </div>
    </form>
</div>
<?php include '../includes/footer.php'; ?>

حذف فئة (categories/delete.php)

لحذف فئة، استخدم الكود التالي في categories/delete.php:

<?php
// categories/delete.php
include '../includes/db_connect.php';

if (isset($_GET['id'])) {
    $id = $_GET['id'];

    // حذف الفئة
    $stmt = $pdo->prepare('DELETE FROM categories WHERE id = :id');
    $stmt->execute(['id' => $id]);
}

header('Location: index.php');
exit();
?>

بإكمال هذه الخطوات، تكون قد نفذت بنجاح عمليات CRUD (إضافة، عرض، تعديل، حذف) لفئات نظام نقاط البيع.

التعليقات

اترك تعليقاً