دليل تنفيذ عمليات CRUD باستخدام PHP | إنشاء، قراءة، تحديث، حذف في PHP
دليل إنشاء عمليات 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 لحذف السجل من جدول$sql = "DELETE FROM users WHERE id=$id"
users
بناءً علىid
المحدد.$conn->query($sql)
: ينفذ استعلام الحذف على قاعدة البيانات. إذا نجح الحذف، يتم إظهار رسالة “تم حذف المستخدم بنجاح”.
الخلاصة
في هذا الدليل، تعلمنا كيفية إنشاء تطبيق CRUD بسيط باستخدام PHP وقاعدة بيانات MySQL. هذا المثال الأساسي يمكن أن يكون قاعدة لبناء تطبيقات ويب أكثر تعقيدًا وفعالية. يُمكنك تحسين هذا التطبيق بإضافة ميزات مثل تأكيد الحذف، البحث، وترتيب البيانات، والتحقق من صحة البيانات قبل الإدخال.
اترك تعليقاً