دليل تنفيذ عمليات CRUD باستخدام PHP | إنشاء، قراءة، تحديث، حذف في PHP

Amine
16/09/2024

دليل إنشاء عمليات CRUD باستخدام PHP

في هذا الدليل، سنتعرف على كيفية تنفيذ عمليات CRUD (إنشاء، قراءة، تحديث، حذف) باستخدام لغة البرمجة PHP وقاعدة بيانات MySQL. هذه العمليات تعتبر أساسية لأي تطبيق ويب يحتاج إلى التعامل مع البيانات بشكل ديناميكي، مثل تطبيقات إدارة المستخدمين أو الأنظمة التجارية.

ما هي عمليات CRUD؟

CRUD هو اختصار للأربع عمليات الأساسية التي يمكن تنفيذها على البيانات:

  • Create (إنشاء): إنشاء سجل جديد في قاعدة البيانات.
  • Read (قراءة): قراءة أو استرجاع البيانات من قاعدة البيانات.
  • Update (تحديث): تعديل بيانات موجودة في قاعدة البيانات.
  • Delete (حذف): حذف سجل من قاعدة البيانات.

الإعدادات الأساسية

قبل أن نبدأ، تأكد من أن لديك بيئة عمل PHP جاهزة، مثل XAMPP أو WAMP، وقاعدة بيانات MySQL جاهزة للعمل. سنقوم بإنشاء جدول بسيط لتخزين البيانات.

إنشاء قاعدة البيانات والجدول

افتح phpMyAdmin أو أي أداة لإدارة MySQL وقم بإنشاء قاعدة بيانات جديدة. على سبيل المثال، سنسميها crud_example.

بعد ذلك، قم بإنشاء جدول باسم users يحتوي على الأعمدة التالية:

CREATE TABLE users (
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(50) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

هنا نوضح معنى كل جزء من أجزاء هذا الأمر:

  • CREATE TABLE: يستخدم لإنشاء جدول جديد.
  • id INT(11) AUTO_INCREMENT PRIMARY KEY
    : حقل id من النوع INT وهو المفتاح الأساسي للجدول، يتم زيادة قيمته تلقائيًا مع كل إدخال جديد.
  • name VARCHAR(50) NOT NULL: حقل name من النوع نصي بطول 50 حرفًا، ولا يمكن أن يكون فارغًا.
  • email VARCHAR(50) NOT NULL: حقل email أيضًا من النوع النصي، بطول 50 حرفًا، ولا يمكن أن يكون فارغًا.
  • created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP: حقل created_at
    الذي يخزن وقت إنشاء السجل بشكل تلقائي.

الاتصال بقاعدة البيانات

سنبدأ بإنشاء ملف PHP للاتصال بقاعدة البيانات. قم بإنشاء ملف باسم db.php واكتب فيه الكود التالي:

<?php
$servername = "localhost";
$username = "root"; // اسم مستخدم قاعدة البيانات
$password = ""; // كلمة مرور قاعدة البيانات
$dbname = "crud_example"; // اسم قاعدة البيانات

// إنشاء الاتصال بقاعدة البيانات
$conn = new mysqli($servername, $username, $password, $dbname);

// التحقق من الاتصال
if ($conn->connect_error) {
    die("فشل الاتصال: " . $conn->connect_error);
}
?>

في هذا الكود:

  • new mysqli(): يقوم بإنشاء اتصال جديد بقاعدة البيانات. نمرر معلومات الخادم (الاسم، المستخدم، كلمة المرور، واسم قاعدة البيانات).
  • $conn->connect_error: يتحقق مما إذا كانت هناك مشكلة في الاتصال. في حالة وجود خطأ، يتم إظهار رسالة “فشل الاتصال”.
  • die(): توقف تنفيذ الكود إذا حدث خطأ. يمكننا إظهار رسالة خطأ باستخدامه.

عملية الإنشاء (Create)

لإدراج بيانات جديدة في الجدول، سنقوم بإنشاء نموذج HTML لإدخال البيانات، ثم معالجة هذه البيانات باستخدام PHP. قم بإنشاء ملف باسم create.php واكتب فيه الكود التالي:

<?php include 'db.php'; ?>

<!DOCTYPE html>
<html>
<head>
    <title>إنشاء مستخدم جديد</title>
</head>
<body>

    <h2>إنشاء مستخدم جديد</h2>
    <form method="POST" action="">
        الاسم: <input type="text" name="name" required><br><br>
        البريد الإلكتروني: <input type="email" name="email" required><br><br>
        <input type="submit" name="submit" value="إضافة">
    </form>

    <?php
    if (isset($_POST['submit'])) {
        $name = $_POST['name'];
        $email = $_POST['email'];

        $sql = "INSERT INTO users (name, email) VALUES ('$name', '$email')";

        if ($conn->query($sql) === TRUE) {
            echo "تم إضافة المستخدم بنجاح";
        } else {
            echo "خطأ: " . $sql . "<br>" . $conn->error;
        }
    }

    $conn->close();
    ?>

</body>
</html>

في هذا القسم:

  • $_POST['submit']: هذا المتغير يتحقق مما إذا تم إرسال النموذج بواسطة المستخدم.
  • $sql: يحتوي على استعلام SQL لإدراج البيانات في قاعدة البيانات. نستخدم استعلام INSERT INTO لإضافة بيانات جديدة إلى الجدول.
  • $conn->query($sql): ينفذ الاستعلام SQL على قاعدة البيانات. إذا نجح الاستعلام، يتم إظهار رسالة “تم إضافة المستخدم بنجاح”.
  • $conn->close(): يغلق الاتصال بقاعدة البيانات بعد الانتهاء من العملية.

عملية القراءة (Read)

لجلب البيانات من قاعدة البيانات وعرضها، سنقوم بإنشاء ملف باسم read.php يحتوي على الكود التالي:

<?php include 'db.php'; ?>

<!DOCTYPE html>
<html>
<head>
    <title>عرض المستخدمين</title>
</head>
<body>

    <h2>قائمة المستخدمين</h2>

    <table border="1">
        <tr>
            <th>ID</th>
            <th>الاسم</th>
            <th>البريد الإلكتروني</th>
            <th>تاريخ الإنشاء</th>
        </tr>
        <?php
        $sql = "SELECT * FROM users";
        $result = $conn->query($sql);

        if ($result->num_rows > 0) {
            while($row = $result->fetch_assoc()) {
                echo "<tr><td>" . $row["id"]. "</td><td>" . $row["name"]. "</td><td>" . $row["email"]. "</td><td>" . $row["created_at"]. "</td></tr>";
            }
        } else {
            echo "لا توجد بيانات";
        }
        $conn->close();
        ?>
    </table>

</body>
</html>

في هذا القسم:

  • $sql = "SELECT * FROM users": هذا الاستعلام يستخدم لجلب جميع السجلات من جدول users.
  • $conn->query($sql): ينفذ استعلام SQL ويعيد النتائج في شكل كائن mysqli_result.
  • $result->num_rows: يتحقق من عدد السجلات الموجودة في نتيجة الاستعلام. إذا كان هناك سجلات، يتم عرضها في جدول HTML.
  • $row = $result->fetch_assoc(): يُرجع صفًا واحدًا من نتيجة الاستعلام في شكل مصفوفة مترافقة. نستخدمها للوصول إلى البيانات داخل حلقة while.

عملية التحديث (Update)

للتحديث، سنقوم بإنشاء نموذج لتحرير بيانات المستخدم ثم تحديثها في قاعدة البيانات. قم بإنشاء ملف باسم update.php:

<?php include 'db.php'; ?>

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

    $sql = "SELECT * FROM users WHERE id=$id";
    $result = $conn->query($sql);
    $row = $result->fetch_assoc();
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>تحديث بيانات المستخدم</title>
</head>
<body>

    <h2>تحديث بيانات المستخدم</h2>
    <form method="POST" action="">
        الاسم: <input type="text" name="name" value="<?php echo $row['name']; ?>" required><br><br>
        البريد الإلكتروني: <input type="email" name="email" value="<?php echo $row['email']; ?>" required><br><br>
        <input type="submit" name="update" value="تحديث">
    </form>

    <?php
    if (isset($_POST['update'])) {
        $name = $_POST['name'];
        $email = $_POST['email'];

        $sql = "UPDATE users SET name='$name', email='$email' WHERE id=$id";

        if ($conn->query($sql) === TRUE) {
            echo "تم تحديث البيانات بنجاح";
        } else {
            echo "خطأ: " . $sql . "<br>" . $conn->error;
        }
    }

    $conn->close();
    ?>

</body>
</html>

في هذا القسم:

  • $_GET['id']: يستخدم للحصول على id للمستخدم المحدد من الرابط.
  • $sql = "UPDATE users SET ...": استعلام SQL لتحديث بيانات المستخدم. نستخدم UPDATE لتحديد الأعمدة التي نريد تعديلها باستخدام القيم الجديدة.
  • $conn->query($sql): ينفذ استعلام التحديث على قاعدة البيانات. إذا نجح التحديث، يتم إظهار رسالة “تم تحديث البيانات بنجاح”.

عملية الحذف (Delete)

لحذف البيانات، سنقوم بإنشاء ملف باسم delete.php يحتوي على الكود التالي:

<?php include 'db.php'; ?>

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

    $sql = "DELETE FROM users WHERE id=$id";

    if ($conn->query($sql) === TRUE) {
        echo "تم حذف المستخدم بنجاح";
    } else {
        echo "خطأ: " . $conn->error;
    }

    $conn->close();
}
?>

في هذا القسم:

  • $_GET['id']: يستخدم للحصول على id للمستخدم المراد حذفه من الرابط.
  • $sql = "DELETE FROM users WHERE id=$id"
    : استعلام SQL لحذف السجل من جدول users بناءً على id المحدد.
  • $conn->query($sql): ينفذ استعلام الحذف على قاعدة البيانات. إذا نجح الحذف، يتم إظهار رسالة “تم حذف المستخدم بنجاح”.

الخلاصة

في هذا الدليل، تعلمنا كيفية إنشاء تطبيق CRUD بسيط باستخدام PHP وقاعدة بيانات MySQL. هذا المثال الأساسي يمكن أن يكون قاعدة لبناء تطبيقات ويب أكثر تعقيدًا وفعالية. يُمكنك تحسين هذا التطبيق بإضافة ميزات مثل تأكيد الحذف، البحث، وترتيب البيانات، والتحقق من صحة البيانات قبل الإدخال.

التعليقات

اترك تعليقاً