السلام عليكم و رحمة الله و بركاته،كنا في الدرس السابق قد تحدثنا عن طريقة إنشاء الجداول مع تخصيص نوع كل حقل و اليوم إن شاء الله سيكون الدرس الطويل وهو في الأصل مجرد لتطبيق في مادرسناه سابقا فأرجوا أن يكون التفاعل كبير و النقاش حاد...
نقاط الدرس :
إنشاء قاعدة بيانات .
إنشاء جدول مع تخصيص نوع كل حقل .
إضافة البيانات الى القاعدة .
الإستعلام من القاعدة .
البحث في القاعدة .
التعديل في ما يوجد في القاعدة و تحديثها .
الحذف من القاعدة .
إنشاء قاعدة و جدول مع إضافة البيانات :
أولا سنقوم بالإعلان عن 4 متغيرات لكي تسهل علينا الكتابة في ما بعد وهي كالتالي :
<? $host="127.0.0.1"; $user="root"; $pass=""; $connect=@mysql_connect($host,$user,$pass); ?>
الان سنقوم بإنشاء قاعدة بيانات اسمها school
<?
$host="127.0.0.1";
$user="root";
$pass="";
$connect=@mysql_connect($host,$user,$pass);
mysql_query("CREATE DATABASE school",$connect);
?>تذكر أن الدالة ()mysql_query تستعمل لتنفيذ إستعلامات MySql
الأن بعد أن أحدثنا قاعد بيانات نريد أن نضيف لها جدول اسمه students يحتوي على معلومات الطالب كالتالي : الإسم،اللقب،العمر،العنوان،الملاحظات
فيلزمنا 5 حقول، 3 من نوع varchar لكل من( الإسم،اللقب،العنوان) ،و آخر من نوع int للعمر أما الأخير و الذي يخص الملاحظات فسنحدد له نوع text لأنه سيكون كبير نسبيا.

لاحظ في السطر 7 قمت بإنشاء متغير يحتوي على إستعلام MySql و هو يقوم بإنشاء 5 حقول بحيث تكون : إسم الحقل نوعه وهكذا .

و يتم الفصل مابين كل حقل و حقل ب " , " أما في السطر 13 فكما قلنا أن الدلة mysql_query تحتاج الى وسيط فقمنا بتمرير لها المتغير table$، حتى الان لم تكن هذه إلا تمهيد للمرحلة المتقدمة.
الأن سنقوم بإنشاء صفحتين الأولى يقوم فيها الأستاذ بإدخال بيانات الطالب و الثانية تقوم بإدخال البيانات الى القاعدة، لهذا قم بإنشاء لوحة تسجيل مثل هذه و قد قمت بوضع إسم الحقول كالتالي :

صفحة الإضافة ستقوم بجلب أولا قيم الحقول و من ثم ستقوم بعملية الإدخال :
<?
$host="127.0.0.1";
$user="root";
$pass="";
$f_name=$_GET['fname'];
$l_name=$_GET['lname'];
$s_age=$_GET['age'];
$s_address=$_GET['address'];
$notes=$_GET['notes'];
$connect=@mysql_connect($host,$user,$pass);
mysql_select_db("school",$connect);
@mysql_query("INSERT INTO students(FirstName,LastName,Age,Address,Remarks)
VALUES ('$f_name','$l_name','$s_age','$s_address','$notes')",$connect);
?>لاحظ الترتيب حيث سيتم إدخال في الحقل FirstName قيمة المتغير f_name$ وهكذا مع البقية وكي تفهم أكثر اليك الصورة التوضيحية :

ملاحظة : أنا لم أقم بوضع شروط التحقق و للآخره لكي يكون الدرس بسيطا لهذا عليك أن تقوم بكتابتها حتى تكون برامجك مستقرة و يمكنك الأن البدأ بكتابة برامج تعتمد على قواعد البيانات بكل ثقة مع توكل بالله فهو الموفق في كل شيئ.
الإستعلام من القاعدة :
عرفنا كيف نضيف الى قاعدة البيانات لكن ماذا لو أراد الأستاذ رؤية بيانات الطلاب ، هل سيقوم بسؤال كل واحد ؟! هاهاها لا سيقوم بالإستعلام من القاعدة و لو كنتم تتذكرون في الدرس الأول أننا نستعمل الدالة ()mysql_fetch_array التي سترجع لنا الحقول على شكل مصفوفة لكي يتم التحديد منها ما نحتاجه وهذا ما سنقوم به الآن فكونوا أكثر يقظة لأني أرى هذه أحلى شيء في PHP&MySql .

لاحظ مباشرةا في السطر 7 ،قمنا بإجراء إستعلام يقوم لنا بتحديد الجدول و صيغته كالتالي :
mysql_query("SELECT * FROM table_name");حيث table_name هو الجدول المراد إجراء عليه عملية جلب البيانات أو غيرها، في السطر الثامن نجد حلقة تكرار و فائدنها هنا أنها ستقوم بالإستعلام من الجدول حتى آخر ماتجده أما المتغير get$ فهو معرف تلقائيا من طرف PHP وفائدته أنه يصنع من نفسه مصفوفة حقول بمساعدة الدالة ()mysql_fetch_array ويتم إستعماله في ما بعد كالتالي :
echo $get['row name'];
حيث row name تشير الى إسم الحقل أما الدالة ()mysql_fetch_array فهي المسؤولة عن جعل حقول الجدول مصفوفة ومن ثم تمريرها الى المتغير get$
السطر 10 نقوم فيه بطباعة الحقول المستعلمة و بهذا يستطيع ان يرى الأستاذ بيانات طلابه دون سؤالهم .
البحث في القاعدة :
بإختصار شديد تتم حسب الصيغة الآتية :
mysql_query("SELECT * FROM table WHERE column operator value");حيث table الجدول المراد البحث فيه و where هي التي تقوم بعملية التنفيذ على حسب العملية المسبوقة بها من طرف operator أما value فهي القيمة المراد البحث عنها و فيما يلي العمليات التي تسبق WHERE :
> أقل تماما,< أكبر تماما,=< أقل أو يساوي,=> أكبر أو يساوي,=! لايساوي,= يساوي وهي في الغالب المستعملة (توجد أخرتان و لكن لا نحتاجها الآن) .
في هذا المثال سنقوم بالبحث عن إسم طالب و إن وجده سيقوم بطباعة لقبه و عمره :
<?
$server='localhost';
$user='root';
$pass='';
$connect=mysql_connect($server,$user,$pass) or die ("can 't connect");
mysql_select_db("school",$connect);
$info_students=mysql_query("SELECT * FROM students where FirstName='محمد'"
,$connect);
while($get=mysql_fetch_array($info_students))
{
echo $get['LastName']." ".$get['Age'];
}
?>التعديل في ما يوجد في القاعدة و تحديثها :
بكل بساطة كالتالي :
mysql_query("UPDATE table_name SET row = 'the new value' WHERE row1 = 'value2' AND row2 = 'value2'");حيث UPDATE تعني تحديث الجدول table_name و SET الحقل المراد التعديل عليه بالقيمة 'the new value' أما ...WHERE فهي ستعدل الحقل الموجودة به القيم المعطاة لها ،وهذا مثال يقوم بتعديل عنوان الطالب :
<?
$host="127.0.0.1";
$user="root";
$pass="";
$connect=@mysql_connect($host,$user,$pass);
mysql_select_db("school",$connect);
mysql_query("UPDATE students SET Address="في أرض الله الواسعة" where FirstName='SIFE-c'");
mysql_close($connect);
?>الحذف من القاعدة :
mysql_query("DELETE FROM table_name WHERE column_name = "value");حيث table_name هو الجدول المراد الحذف منه و where تحدد لنا القيمة المراد حذفها من العمود column_name ،وهذا مثال يقوم بحذف طالب غير نجيب مثلي :
<?
$host="127.0.0.1";
$user="root";
$pass="";
$connect=@mysql_connect($host,$user,$pass);
mysql_select_db("school",$connect);
mysql_query(""DELETE FROM students WHERE FirstName = "SIFE-c");
mysql_close($connect);
?>لقد أضمنت لكم دروس الدورة .
كلمة ختامية :
أتمنى أن تكونوا قد إستفدتم من هذه الدورة المصغرة و يجعلها اللــــه في ميزان حسناتنا وللعلم أن هذا العمل مهدى لكل مسلم ومسلمة أما ما أطلبه منكم هو التطبيق حتى لا تنسوا ثم الدعاء لي جدتي المتوفاة ثم أمي و بالطبع الكاتب هاهاها.
حقوق التعديل و النشر غير محفوظة ، يجوز لك التعديل فيها و كتابتها بإسمك شريطة أن تكون للمنفعة العامة و من دون ثمن .
أخوكم SIFE-c .