شرح عن دالة مفيدة في ظهرت منذ إصدارة PHP 3.0.7 وحتى الآن ..
هذي الدالة هي دالة extract وهي مفيدة بعد استخراج النتائج من قاعدة البيانات عن طريق دالة mysql_fetch_array
يعني هذي الدالة تخلي الحقول الموجودة في قاعدة البيانات على شكل متغيرات،، وكل متغير يكون باسم الحقل
يعني ناخذ مثال:
- لنفترض أن لدينا قاعدة بيانات باسم students وفيها جدول باسم students ونريد استخراج جميع المعلومات الموجودة فيها،، لنفترض أن هذه المعلومات هي username وpassword وmarks وschool وclass
سنحتاج للكود التالي لاستخراج النتائج ووضعها في متغيرات ،، لاحظوا :: متغيرات (ليست مصفوفات)..
- الكود:
-
// الاتصال بقاعدة البيانات
$connect = mysql_connect("localhost","root","");
$select = mysql_select_db("students",$connect);
// استعلام إس كيو إل من قاعدة البيانات
$sql = "SELECT * FROM students";
// تنفيذ الاستعلام في قاعدة البيانات
$result = mysql_query($sql);
// استخراج النتائج في مصفوفة هي row
while ($row = mysql_fetch_array($result)) {
$username=$row[username];
$password=$row[password];
$marks=$row[marks];
$school=$row[school];
$class=$row[class];
}
وبذلك أصبح لدينا 5 متغيرات تحوي محتويات حقول الجدول students ..
الآن، ما رأيكم لو اختصرنا الخمسة أسطر الخاصة بتعريف المتغيرات بسطر واحد فقط ..
إذاً فلتتعرفوا إلى الدالة التالية وهي extract ..: ::
[php]
// الاتصال بقاعدة البيانات
$connect = mysql_connect("localhost","root","");
$select = mysql_select_db("students",$connect);
// استعلام إس كيو إل من قاعدة البيانات
$sql = "SELECT * FROM students";
// تنفيذ الاستعلام في قاعدة البيانات
$result = mysql_query($sql);
// استخراج النتائج في مصفوفة هي row
while ($row = mysql_fetch_array($result)) {
extract($row);
}
[/php
فلنجرب الكود التالي الآن والخاص بطباعة محتويات المتغيرات الخمسة مرتبين تحت بعض :
Echo $username . "<BR>" . $password . "<BR>" . $marks . "<BR>" . $school . "<BR>" . $class;
إذا جربنا الكود السابق بعد كتابة الكود الأول ثم بعد كتابة الكود الثاني نلاحظ أن الناتج واحد ..
وأن الدالة extract وفرت علينا 5 أسطر في سطر واحد ..
ماذا لو كان الجدول يحتوي على 10 حقول أو أكثر ؟؟!!
عندها ستلاحظ أهمية هذه الدالة في استخراج البيانات من قاعدة البيانات ..
فائدة أخرى لهذه الدالة في نفس المهمة ..
وهي عند استخراج البيانات من قاعدة البيانات ، فإنك ستحتاج إلى تعريف كل حقل جديد في قاعدة البيانات كلما احتجت إليه .. يعني إذا كان لديك حقلين في قاعدة البيانات وكتبت المثال الأول فإنه سوف يعرف الحقلين فقط ، وإذا قمت بعد ذلك بإنشاء حقل آخر في نفس الجدول فإن البرنامج لن يقوم بتعريف متغير خاص بالحقل الجديد .. أما باستعمال دالة extract فإن البرنامج سيقوم بشكل تلقائي بتعريف جميع حقول الجدول سواء كنت تحتاجها أم لا ، وسواء كانت قديمة أم جديدة ..!!
أرجو أن أكون قد أفدتكم في شرح هذه الدالة ..