صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 20

الموضوع: دالة extract لتعريف حقول قاعدة البيانات كمتغيرات

  1. #1

    دالة extract لتعريف حقول قاعدة البيانات كمتغيرات



    السلام عليكم شباب

    كيف الحال؟؟

    آسف عالإنقطاع عن دروس البي إتش بي

    هالكم يوم إن شاء الله رح أنزل عدد جيد من الدروس

    اليوم جايب لكم شرح عن دالة مفيدة في ظهرت منذ إصدارة PHP 3.0.7 وحتى الآن ..

    هذي الدالة هي دالة extract وهي مفيدة بعد استخراج النتائج من قاعدة البيانات عن طريق دالة mysql_fetch_array

    يعني هذي الدالة تخلي الحقول الموجودة في قاعدة البيانات على شكل متغيرات،، وكل متغير يكون باسم الحقل

    يعني ناخذ مثال:

    - لنفترض أن لدينا قاعدة بيانات باسم students وفيها جدول باسم students ونريد استخراج جميع المعلومات الموجودة فيها،، لنفترض أن هذه المعلومات هي username وpassword وmarks وschool وclass

    سنحتاج للكود التالي لاستخراج النتائج ووضعها في متغيرات ،، لاحظوا :: متغيرات (ليست مصفوفات)..

    كود 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)) {
        
    $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

    فلنجرب الكود التالي الآن والخاص بطباعة محتويات المتغيرات الخمسة مرتبين تحت بعض :

    كود PHP:
    Echo $username "<BR>" $password "<BR>" $marks "<BR>" $school "<BR>" $class
    إذا جربنا الكود السابق بعد كتابة الكود الأول ثم بعد كتابة الكود الثاني نلاحظ أن الناتج واحد ..

    وأن الدالة extract وفرت علينا 5 أسطر في سطر واحد ..

    ماذا لو كان الجدول يحتوي على 10 حقول أو أكثر ؟؟!!

    عندها ستلاحظ أهمية هذه الدالة في استخراج البيانات من قاعدة البيانات ..

    فائدة أخرى لهذه الدالة في نفس المهمة ..

    وهي عند استخراج البيانات من قاعدة البيانات ، فإنك ستحتاج إلى تعريف كل حقل جديد في قاعدة البيانات كلما احتجت إليه .. يعني إذا كان لديك حقلين في قاعدة البيانات وكتبت المثال الأول فإنه سوف يعرف الحقلين فقط ، وإذا قمت بعد ذلك بإنشاء حقل آخر في نفس الجدول فإن البرنامج لن يقوم بتعريف متغير خاص بالحقل الجديد .. أما باستعمال دالة extract فإن البرنامج سيقوم بشكل تلقائي بتعريف جميع حقول الجدول سواء كنت تحتاجها أم لا ، وسواء كانت قديمة أم جديدة ..!!

    أرجو أن أكون قد أفدتكم في شرح هذه الدالة ..

    واعذروني على التقصير ..

    والسلام عليكم ورحمة الله وبركاته





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074


  2. #2


    شكرا لك اخي الكريم
    قمت الان بتجريبها فإستخرجت اخر صف فقط من الجدول لو مثلا اريد الصف الثالث لو فرضنا كيف منسوي





    __________________
    لا إله إلا الله محمد رسول الله

  3. #3
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,123


    مشكور اخوي ودروس ليس في المفضلة فقط بل في الجهاز مباشرة حفظ .





    __________________
    htaccess بكل بساطة

    الشفرة الموحدة "يونِكود"

    (إن من مفاسد هذه الحضارة أنها تسمي الاحتيال ذكاءً، والانحلال حرية، و"الرذيلة فناً" والاستغلال معونة) - مصطفى السباعي

  4. #4


    العفو إخواني وجزاك الله خيراً أخي jadweb.com

    اخوي سورية
    فعلاًُ هذا هو المقصد من هذه الدالة ......
    لاستخراج كل الصفوف استخدم حلقة while
    كود PHP:
    while ($row mysql_fetch_array($result)) {
    // commands

    وشكراً لمرورك وارجو انك تستفيد





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074

  5. #5
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    715


    جميله جدا
    ياريت تستمر في دروسك






  6. #6


    شكرا لك على الرد وجاري التجريب ............





    __________________
    لا إله إلا الله محمد رسول الله

  7. #7


    العفو إخواني
    وإن شاء الله يكون أعجبكم الدرس





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074

  8. #8


    رائع جداً اخي العزيز

    درس ممتاز جداً بارك الله فيك

    تحياتي لك






  9. #9
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2003
    المشاركات
    374


    ما اقول الا جزاك الله الف خير ,,

    صراحه مواضيعك والدوال ممتازه واغلبها محفوظه لدي على الجهاز ,, واصل بارك الله فيك ,,


    وبالتوفيق ان شاء الله

    وفي امان الله





    __________________
    سبحان الله وبحمده سبحان الله العظيم

  10. #10


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





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074

  11. #11
    عضو فعال
    تاريخ التسجيل
    Jul 2001
    المشاركات
    1,852


    اخوي سؤال..

    ليش مانستخدم $row[username] على طول بدون استخدام امر الاكستركت ؟

    وشكرا





    __________________
    مرحبا بكم في مدونتي
    http://www.abdullah.cc

    معا لنشر المعلومه في سوالف

  12. #12
    عضو نشيط
    تاريخ التسجيل
    Mar 2005
    المشاركات
    116


    شكرا لك اخوي sBForum

    صراحه درس ممتاز بالتوفيق اخوي

    تحياتي






  13. #13


    أخ Sn3s : استخدام مصفوفة $row أو المصفوفة الأصلية التي تحتوي على النتائج من دالة mysql_fetch_array لن يعمل خارج جملة while أي بعد إغلاق القوس المتعرج } الخاص بجملة while ....

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

    وشكراً لمرورك وتعقيبك يا فتى ......!

    الاخ qe9h ، العفو وشكراً لمديحك .................

    في النهاية .. لاحظوا تاريخ الموضوع .....! 29-12-2005 ...! اذا كان فيه فائدة فلا مانع في رفعه ، لكن اتمنى ان لا يكون ذلك يضايق الإدارة

    تحياتي ،، sBForum





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074



  14. sBForum رهيب

    ملاحظه:
    ===========
    شكلك تستعمل الخاصيه
    error_reporting = E_ALL & ~E_NOTICE في الملف php.ini

    حاول ان تبرمج والخاصيه في الوضعيه
    error_reporting = E_ALL





    __________________
    هلابي افضل المواقع العربية تصميماً
    انصح باستخدام ابونتو

  15. #15


    أهلاً أستاذي hilaby ......

    نعم في الحقيقة أستخدم E_ALL & ~E_NOTICE .. لأن السماح بأخطاء الملاحظات يتعبني مع بعض السكربتات والتجارب .... لكن سوف أقوم بالتجربة والرد إن شاء الله تعالى ..

    تحياتي ، sBForum





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض