مقدمة من أكاديمية حسوب
دورة تطوير التطبيقات باستخدام لغة JavaScript
في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp.
دورة تطوير واجهات المستخدم
في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية.
دورة تطوير تطبيقات الجوال باستخدام تقنيات الويب
في هذه الدورة ستتعلم أساسيات منصة كوردوفا و كيف تستخدمها لتطوير تطبيقات متعددة المنصات, بناء تطبيق لموقع Wordpress, تطوير تطبيق قائمة مهام, تطوير تطبيق حالة الطقس, تطوير تطبيق لمطعم باستخدام إطار العمل Ionic 4.
دورة تطوير تطبيقات الويب باستخدام لغة PHP
في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل.
دورة تطوير تطبيقات الويب باستخدام لغة Ruby
في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O.
دورة علوم الحاسوب
هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب.

التعامل مع قواعد بيانات MySQL بإستخدام لغة PHP

تعد لغة PHP من أكثر لغات البرمجة إستخداماً في برمجة المواقع الإلكترونية, حيث أنها تستخدم بشكل أساسي كوسيط بين زوار الموقع و قاعدة البيانات الخاصة بالموقع.

فمثلاً عندما تقوم بطلب صفحة من موقع مبني بلغة PHP ستقوم لغة PHP بقراءة رابط الصفحة التي طلبتها. بعدها ترسل إستعلام (Query) إلى قاعدة البيانات يقضي بطلب محتوى الصفحة الخاصة بهذا الرابط. في حال كان الرابط موجود في قاعدة البيانات تقوم PHP بعرض محتوى الصفحة الخاصة بهذا الرابط لك. و في حال كان الرابط غير موجود في قاعدة البيانات فإن PHP ستقوم بتوجيهك لصفحة مكتوب فيها على سبيل المثال “الصفحة المطلوبة غير موجودة”.

مثال آخر, عندما تحاول تسجيل الدخول في موقع مبني بلغة PHP ستقوم لغة PHP بالبحث في قاعدة البيانات عن مستخدم يملك الإسم و كلمة المرور المدخلة التي أدخلها الزائر. في حال وجدتها موجودة في قاعدة البيانات ستقوم بإدخاله و في حال لم تجدها ستقوم بإبلاغه مثلاً أن هناك مشكلة في تسجيل الدخول و قد تخبره أن المشكلة في كلمة المرور أو أن حسابه تم إيقافه إلخ..

في هذا المقال ستتعلم كيف تربط لغة PHP بقواعد بيانات MySQL عبر أوامر MySQLi.

 

مفهوم الـ CRUD Operations

بشكل عام, هذا المصطلح يقصد به العمليات المتعارف عليها في قواعد البيانات و التي سنعلمك كيف تفعلها بتفصيل ممل في هذا المقال.

الآن, كل حرف في كلمة CRUD هو اختصار لمصطلح متعارف عليه في قواعد البيانات.

الحرف C: إختصار لكلمة Create و يقصد به إضافة بيانات جديدة في قاعدة البيانات.
مثل إضافة معلومات مستخدم جديد في قاعدة البيانات باستخدام الأمر insert.

الحرف R: إختصار لكلمة Read و يقصد به قراءة بيانات من قاعدة البيانات.
مثل جلب محتوى المقال الذي تقرؤه الآن من قاعدة البيانات بإستخدام الأمر select.

الحرف U: إختصار لكلمة Update و يقصد به تحديث بيانات كانت موجودة في قاعدة البيانات.
مثل تحديث معلومات المستخدم في قاعدة البيانات بإستخدام الأمر update.

الحرف D: إختصار لكلمة Delete و يقصد به حذف بيانات من قاعدة البيانات.
مثل حذف تعليق على مقال ما من قاعدة البيانات بإستخدام الأمر Delete.

إذاً, CRUD تعني إضافة، قراءة، تحديث، حذف.

 

طريقة الإتصال بسيرفر قاعدة البيانات بإستخدام mysqli

قبل البدء, لا تنسى التأكد من تشغيل السيرفر المحلي (سواء كنت تستخدم XAMP أو MAMP) قبل أن تجرب تنفيذ أي أمر على قاعدة البيانات لأنه سيظهر لك خطأ في الإتصال حتى و إن كانت كل المعلومات الموضوعة صحيحة.

في المثال التالي قمنا بالإتصال بقاعدة بيانات موجودة على سيرفر محلي و هذا سبب وضع localhost.
كما إفترضنا أن اسم المستخدم في قاعدة البيانات هو username و كلمة المرور هي password.

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

// انشاء الاتصال
$conn = new mysqli($servername, $username, $password);

// $conn هذا المتغير الخاص بالاتصال سوف نحتاجه في اي عملية نرغب بإجرائها على قاعدة البيانات
// التأكد من عملية الاتصال بسيرفر قاعدة البيانات 
if ($conn->connect_error)
{
    echo "توجد مشكلة في الاتصال: " . $conn->connect_error;
}
else
{
	echo "تم الاتصال بنجاح";
}
?>

 

طريقة إنشاء قاعدة البيانات

في المثال التالي قمنا بكتابة أمر ينشئ قاعدة بيانات إسمها learn.

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

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

// هذا المتغير الخاص بالاتصال سوف نحتاجه في اي عملية نرغب بإجرائها على قاعدة البيانات $conn 
// التأكد من عملية إنشاء قاعدة البيانات  
$create_db = $conn->query("CREATE DATABASE learn");
if ($create_db === TRUE) 
{
    echo "تم إنشاء قاعدة البيانات بنجاح";
}
else
{
    echo "خطأ، لم يتم انشاء قاعدة البيانات: " . $conn->error;
}
?>

 

طريقة الإتصال بقاعدة البيانات

بعدما أنشأنا قاعدة البيانات أصبح بإمكاننا الإتصال بها و إرسال الأوامر إليها.
في المثال التالي قمنا بكتابة الكود الذي يستخدم بشكل أساسي للإتصال بقاعدة البيانات و الذي نتأكد من خلاله أن ذلك ممكن أم لا.

<?php
$servername = "localhost"; // الخاص بالسيرفر ip اسم السيرفر أو 
$username = "username"; // اسم المستخدم الخاص بقاعدة البيانات
$password = "password"; // كلمة المرور الخاصة بقاعدة البيانات
$dbname = "learn";         // اسم قاعدة البيانات المراد استخدامها

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

// هذا المتغير الخاص بالاتصال سوف نحتاجه في اي عملية نرغب بإجرائها على قاعدة البيانات $conn 
// التأكد من عملية الاتصال بقاعدة البيانات 
if ($conn->connect_error)
{
    echo "توجد مشكلة في الاتصال: " . $conn->connect_error;
}
else
{
echo "تم الاتصال بنجاح";
}
?>

 

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

في المثال التالي قمنا بإنشاء جدول جديد ( Table ) في قاعدة البيانات إسمه info.

 
<?php
$create_table = $conn->query("CREATE TABLE info (
	id INT,
	full_name TEXT,
	phone TEXT,
	email TEXT
)");
// كلمة محجوزة تستخدم لإنشاء الجدول CREATE TABLE
/*
طريقة الاستخدام

ثم اسم الجدول CREATE TABLE نقوم بكتابة 
داخل () نقوم بكتابة اسم العمود ثم نوع البيانات التي يستقبلها

كأننا نقول انشئ جدول بإسم ثم عمود ويستقبل نوع من البيانات
*/
// يوجد العديد من أنواع البيانات مثل الارقام، النصوص، التاريخ ...الخ 

// التأكد من تنفيذ عملية انشاء الجدول  
if ($create_table === TRUE)
{
    echo "تم إنشاء الجدول";
} 
else
{
    echo "خطأ، لم يتم انشاء الجدول: " . $conn->error;
}
?>

 

طريقة إضافة بيانات جديدة في الجدول

في المثال التالي قمنا بإضافة سطر (نفسها صف, سجل, Record) من المعلومات في الجدول info.

<?php
$inser_data = $conn -> query("INSERT INTO info (id, full_name, phone, email)
VALUES (1, 'Alaa Najmi', '96650000000', 'alaa@alaa.com')");

// كلمة محجوزة تستخدم لإضافة البيانات للجدول INSERT INTO 
/*
طريقة الاستخدام

ثم اسم الجدول المراد اضافة البيانات له INSERT INTO نقوم بكتابة 
داخل () نقوم بكتابة الاعمدة التي نرغب باضافة البيانات لها
نقوم بكتابة داخلها البيانات ويكون ترتيب البيانات مطابق لترتيب العمود المدخل في القوس السابق VALUES()

كأننا نقول اضف للجدول التالي (الاعمدة التالية) بالقيم التالية (القيم)
*/

// لتأكد من تنفيذ عملية اضافة البيانات
if ($inser_data) === TRUE) {
    echo "تم إضافة البيانات للجدول";
}
else
{
    echo " خطأ، لم يتم اضافة البيانات :". $conn->error;
}
?>

 

طريقة قراءة البيانات من الجدول

في المثال التالي قمنا بجلب جميع المعلومات المخزنة في الجدول info.

<?php
$read_data = $conn->query("SELECT * FROM info");
//كلمة محجوزة تستخدم لقراءة البيانات من الجدول SELECT

// علامة * تجلب جميع الاعمدة لو كنا بحاجة جلب اعمدة معيينة فسوف تستبل النجمة وتقوم بكتابة الاعمدة مثال توضيحي أكثر لجلب عمودين فقط
// $read_data = $conn->query("SELECT full_name,email FROM info");

/*
طريقة الاستخدام

ثم اسم الجدول المراد جلب البيانات منه FROM ثم الأعمدة المراد جلب البيانات منها أو علامة النجمة في حالة نرغب بجلب بتحديد جميع الأعمدة وجلب بيانتها ثم SELECT نقوم بكتابة 
 WHERE , ORDER BY , LIMIT , SUM  توجد العديد من الخواص في قراءة البيانات مثل أمر
سوف تتعرف عليها مستقبلا لأنك سوف تحتاجها

كأننا نقول حدد الاعمدة التالية من الجدول التالي
*/

// انتهينا من عمل قراءة البيانات وتبقى علينا استخراجها وعرضها
/*
البيانات الان مجتمعه في مصفوفه ونحتاج فك المصفوفة لاستخراج البيانات
iterator استخرجنا البيانات بإستخدام نوع من التكرار يسمى
ايضا توجد دوال اخرى foreach قمنا باستخدام دالة
طريقة الاستخدام 
foreach(a as b)
 وهو المتغير الذي قرأ البيانات a
 وهو متغير جديد اصبحت في البيانات ونستخدمه لعرضها b
 نقوم بعرض البيانات باسخدام المتغبر الجديد للبيانات ثم [''] نقوم بكتابة اسم العمود المراد عرض بياناته داخل القوس المربع
*/
foreach($read_data as $data)
{
	echo "الاسم : " . $data["full_name"];
	echo "رقم الجوال : " . $data["phone"];
	echo "البريد الإلكتروني : " . $data["email"];
}
?>

 

طريقة تحديث معلومات سطر من الجدول

في المثال التالي قمنا بتحديث معلومات سطر محدد في الجدول info.

<?php
$update_data = $conn->query("UPDATE info SET phone='9665999999',email='alaa@najmi.com' WHERE id=1");
// كلمة محجوزة لتحديث المعلومات UPDATE 
/*
طريقة الاستخدام

ثم ادخال اسم العمود المراد تحديث بياناته وكتابة القيمة الجديدة SET  ثم اسم الجدول الذي نرغب بتحديث المعلومات المتواجدة في احد صفوفة UPDATE نقوم بكتابة
 المقصود بها تريد التحديث لأي صف فقمنا بكتابة اسم العمود والقيمة التي سيتحقق من توفرها في العمود الذي قم بكتابته ان وجدت فيه القيمة سوف يقوم بعملية تحديث البيانات WHERE id=1
 
كأننا نقول حدث من الجدول التالي الممعلومات التالية للعمود والقيمة الجديدة اذا عثرت على عمود اسمه وتوجد فيه هذه القيمة
*/
// للتأكد من تنفيذ التحديث
if ($update_data === TRUE)
{
    echo "تم تحديث المعلومات بنجاح";
}
else 
{
    echo "خطأ، لم يتم تحديث المعلومات: " . $conn->error;
}
?>

 

طريقة حذف سطر من الجدول

في المثال التالي قمنا بحذف سطر واحد موجود في الجدول info.

<?php
$delete_row = $conn->query("DELETE FROM info WHERE id=1");
// كلمة محجوزة لحذف صف DELETE
/*
طريقة الاستخدام

 ثم اسم الجدول DELETE FROM
 المقصود بها تريد أن تحذف أي صف فقمنا بكتابة اسم العمود والقيمة التي سيتحقق من توفرها في العمود الذي قم بكتابته ان وجدت فيه القيمة سوف يقوم بعملية حذف الصف WHERE id=1
 
كأننا نقول أحذف من الجدول التالي اذا عثرت على عمود اسمه وتوجد فيه هذه القيمة
*/
// للتأكد من تنفيذ التحديث

if ($delete_row === TRUE) 
{
    echo "تم حذف الصف بنجاح";
}
else
{
    echo "خطأ، في حذف الصف: " . $conn->error;
}
?>

 

طريقة حذف جدول من قاعدة البيانات

في المثال التالي قمنا بحذف الجدول info كما هو من قاعدة البيانات.

<?php
$delete_table = $conn->query("DROP TABLE info");
//كلمة محجوزة لحذف الجدوال وقواعد البيانات DROP
/*
طريقة الاستخدام

نقوم بكتابة ثم اسم الجدول المراد حذفه DROP TABLE
 
وكأننا نقول احذف الجدول الذي اسمه
*/
if ($delete_table === TRUE) 
{
    echo "تم حذف الجدول بنجاح";
}
else
{
    echo "خطأ، لم يتم حذف الجدول: " . $conn->error;
}
?>

 

طريقة حذف قاعدة بيانات

في المثال التالي قمنا بحذف قاعدة البيانات learn بأكملها من السيرفر.

<?php
$delete_db = $conn->query("DROP DATABASE learn");
//كلمة محجوزة لحذف الجدوال وقواعد البيانات DROP
/*
طريقة الاستخدام

نقوم بكتابة ثم اسم قاعدة البيانات المراد حذفها DROP DATABASE
 
وكأننا نقول احذف قاعدة البيانات التي اسمها
*/
if ($delete_db === TRUE) 
{
    echo "تم حذف قاعدة البيانات بنجاح";
}
else
{
    echo "خطأ، في حذف قاعدة البيانات: " . $conn->error;
}
?>

 

طريقة حماية قواعد البيانات من SQL Injection

من المهم جداً فلترة كل المعلومات التي يرسلها المستخدم لضمان أن لا يرسل كود مؤذي يمرر لقاعدة البيانات.

لفلترة المعلومات التي يرسلها المستخدم نمرر كل معلومة تم إرسالها على الدالة mysqli_real_escape_string() قبل تمريرها لقاعدة البيانات كما في المثال التالي.

$full_name= $conn->real_escape_string($_POST['full_name']);
$phone = $conn->real_escape_string($_POST['phone']);
$email = $conn->real_escape_string($_POST['age'])
//  قمنا بإنشاء متغيرات لترتيب وتنظيم الكود بدلا من كتابة دالة فلترة المدخلات داخل عملية الاضافة
$inser_data = $conn->query("INSERT INTO info (id, full_name, phone, email)
VALUES (2, '$full_name', '$phone', '$email')");
/*
طريقة الاستخدام
real_escape_string دالة مهيئة لفترة المدخلات

 هو المتغير الخاص بإتصال قاعدة البيانات $conn حيث أن$conn->real_escape_string() نقوم بكتابة
هي دالة مهيئة لفترة المدخلات real_escape_string و
نقوم بكتابة داخلها المعلومة المراد فلترتها وتنظيها إن كانت تحتوي على كود خبيث ()
*/

if ($inser_data) === TRUE) {
    echo "تم إضافة البيانات للجدول";
}
else
{
    echo " خطأ، لم يتم اضافة البيانات: ".$conn->error;
}

 

نبّهني عن
guest
15 تعليقات
الآراء المضمنة
شاهد جميع التعليقات
حسام علي
حسام علي
2 سنوات سابقاً

يعطيك ألف عافية مهندس علاء

غسان الحربي
غسان الحربي
1 سنة سابقاً
رداً على  حسام علي

ممكن اتواصل معاك؟

احلام المالكي
احلام المالكي
2 سنوات سابقاً

فعلا فلترة المدخلات شي مهم جدا لتفادي اضافة أًو الاستعلام بسكربتات خبيثه

شكرا علاء❤️

شيرين علي
شيرين علي
1 سنة سابقاً

شكرا لك بسطت وسهلت المفاهيم لنا

شكرا من قلب محبه❤️

غسان الحربي
غسان الحربي
1 سنة سابقاً

ابي احد يساعدني بقواعد البيانات .

Haneen
Haneen
1 سنة سابقاً

وش البرنامج اللي ممكن استخدمه في انشاء قاعده البيانات ؟ ينفع استعمل DW؟

محمد هرموش
المدير
1 سنة سابقاً
رداً على  Haneen

إستخدمي phpmyadmin لأنه سهل جداً مجاني و هذا شرح لكيفية تنصيبه.
harmash.com/sql/sql-environment-setup

أمير
أمير
1 سنة سابقاً

هل يوجد طريقة لقراة المعلومات من sql server عن طريق mysql

محمد هرموش
المدير
1 سنة سابقاً
رداً على  أمير

لا يمكن ذلك, هذا شيء و هذا شيء آخر تماماً.
كل نوع من قواعد البيانات تحتاج أن تتعامل معه بشكل خاص.

عجب فضل الله
عجب فضل الله
1 سنة سابقاً

جزاك الله خير

يوسف اليوسف
يوسف
9 شهور سابقاً

الف شكر للتوضيح

Hadeer
Hadeer
4 شهور سابقاً

اكثر من رائع جزاك الله خيرا

Fatima osman
Fatima osman
3 شهور سابقاً

لدي مشروع تخرج اريد المساعدة
تصميم واجهة موحدة تضم المكتبات الالكترونية
حيث اني في البداية حصمم ثلاث مكتبات إلكترونية افتراضية
كيف انا بقدر ادخل ملفات في جدول ؟
كيف بقدر اعمل تحميل لي بعض الكتب والبعض لا؟
كيف انا حقدر اضيف صورة لقواعد البيانات ؟
وهل حتتعمل ب mysql ولا sql server?

محمد هرموش
المدير
3 شهور سابقاً
رداً على  Fatima osman

تحتاج تعلم فواعد البيانات لتعرف كيف تخزن الملفات, الصور و أي نوع آخر من البيانات
دورة قواعد البيانات

و من ثم تحتاج مشاهدة دورة تشرح تطوير موقع كامل, تابع أي دورة تجدها في يوتيوب أو موقع يوديمي.

إن كنت محصوراً بفترة زمنية قصيرة لن تتمكن من فعل ذلك لأن هذا الأمر يتطلب دراسة 3 أشهر على أقل تقدير إن كنت تملك معرفة مسبقة بالأشياء التي ستحتاجها.

يوسف
يوسف
1 شهر سابقاً

ممكن مشكله تحله عندي البرنامج شغل تمام وقاعدة البينات شغل بس اجي اربط php مش بيفتح

جميع الحقوق محفوظة للموقع   ٢٠٢٠ - ٢٠١٤ ©
DMCA.com Protection Status

محتوى الموقع يخضع لرخصة (CC BY-NC-ND 4.0) التي لا تسمح باستخدام الشروحات لأغراض تجارية, إجراء تعديل عليها و نشرها في موقع آخر, وضع الشروحات في تطبيق أو في كتاب إلا في حال أخذ موافقة صريحة من إدارة الموقع.

© 2020 Harmash. All Content is licensed under CC BY-NC-ND 4.0 unless mentioned otherwise.