|
إنضمامك إلي منتديات استراحات زايد يحقق لك معرفة كل ماهو جديد في عالم الانترنت ...
انضم الينا
#1
| ||
| ||
بسم الله الرحمن الرحيم الحمد لله والصلاة والسلام على سيدنا محمد علية افضل الصلاة واتم التسليم اللهم ليسى لنا علم إلا بما علمتنا وسع علمك كل شيء سبحانك ياذا الجلال والاكرام اللهم علمنا ماينفعنا انك قادر على كل شيء اما بعد السلام عليكم ورحمة الله وبركاتة يمكنك متابعة الدرس السابق من الرابط التالي http://www.traidnt.net/vb/traidnt2403857/ اما درس اليوم الاستعلام عن البيانات بستخدام class منفصل عن ملف العرض نتوكل على الله ونبدا اولا نقوم بانشاء ملف وليكن اسمة class_select.php ونحفظة في مجلد s_class ![]() نفتح الملف ونقوم ببرمجة الكلاس لجب البيانات من القاعدة كما تعلمنا سابقا اولا نكتب بنية الكلاس + اسم للكلاس نسمية select_data رمز PHP: class select_data { }// close class نقوم باضافة متغيرات 3 من نوع برايفت داخل الكلاس رمز PHP: private $quer; private $rows; private $data; المتغير رمز PHP: private $quer; للاستعلام المتغير رمز PHP: private $rows; نستخدة في الوايل متغير رمز PHP: private $data; نستخدمة في اظهار البيانات ليكون كود الكلاس بالشكل التالي رمز PHP: class select_data { private $quer; private $rows; private $data; }// close class نقوم الان بعمل فانكشن للاستعلام عن البيانات رمز PHP: class select_data { private $quer; private $rows; private $data; public function get_data(){ }// close function }// close class نجلب اولا كما تعلمنا متغير الاتصال داخل الفانكشن رمز PHP: global $db; الان نعمل استعلام ونجلب البيانات رمز PHP: $this->quer = $db->query("SELECT * FROM news ORDER BY id ASC"); الان نتاكد ان يوجد استعلام صحيح او نظهر خطأ رمز PHP: if(!$this->quer){ $this->data['eroor'] = "يوجد خطأ في جلب البيانات"; } لماذا حولنا المتغير إلى مصفوفة رمز PHP: $this->data['eroor'] لان سوف نظهره في مكان معين في ملف العرض عند العرض تتضح لكم الفكرة ليصبح الكود إلى الان بهذا الشكل رمز PHP: class select_data { private $quer; private $rows; private $data; public function get_data(){ global $db; $this->quer = $db->query("SELECT * FROM news ORDER BY id ASC"); if(!$this->quer){ $this->data['eroor'] = "يوجد خطأ في جلب البيانات"; } }// close function }// close class نكمل الان نعمل شرط اخر اذا ماكانت فية بيانات يظهر لا توجد بيانات رمز PHP: elseif(!$this->quer->num_rows){ $this->data['eroor'] = "لا توجد اخبار حاليا"; } ليصبح الكود الحالي بهذا الشكل رمز PHP: class select_data { private $quer; private $rows; private $data; public function get_data(){ global $db; $this->quer = $db->query("SELECT * FROM news ORDER BY id ASC"); if(!$this->quer){ $this->data['eroor'] = "يوجد خطأ في جلب البيانات"; }elseif(!$this->quer->num_rows){ $this->data['eroor'] = "لا توجد اخبار حاليا"; } }// close function }// close class الان نعمل else رمز PHP: else{ }// close else اذا كان الاستعلام صحيح وتوجد بيانات نقوم بستخراج البيانات رمز PHP: while ($this->rows = $thise->query->fetch_array(MYSQLI_ASSOC)){ } // CLOSE WHILE شرح بسيط عرفنا مصفوفة الوايل بهذا المتغير رمز PHP: $this->rows وقلنا له المتغير ROWS يساوي متغير الاستعلام ومتغير الاستعلام بيجلب كلاس FETCH_ARRAY وحددنا داخل الاقواس ان نوع ARRAY هي ASSOC نكمل لو لم تستطيع فهم هذه سقوم بشرحها في الرد بشكل اوسع الان نكمل ليكون لدينا هذا الكود رمز PHP: class select_data { private $quer; private $rows; private $data; public function get_data(){ global $db; $this->quer = $db->query("SELECT * FROM news ORDER BY id ASC"); if(!$this->quer){ $this->data['eroor'] = "يوجد خطأ في جلب البيانات"; }elseif(!$this->quer->num_rows){ $this->data['eroor'] = "لا توجد اخبار حاليا"; }else{ while ($this->rows = $thise->query->fetch_array(MYSQLI_ASSOC)){ } // CLOSE WHILE }// close else }// close function }// close class الان نكمل ونجلب البيانات شرح هذه الخطوه وضعنا المتغير data في مصفوفة وعطيناه اسم عشوائي بمكانك تغيرة رمز PHP: $this->data['i'] وقلنا له انة يساوي المتغير rows وايضا مصفوفة لجلب الايدي رمز PHP: $this->data['i'] = $this->rows['id']; وايضا لباقي البيانات رمز PHP: $this->data['t'] = $this->rows['title']; $this->data['c'] = $this->rows['content']; لو تفتكرن الكود العادي الاول وش كنا نعمل نبرمجة بهذا الشكل رمز PHP: $query "select * from news"; while($row = mysql_fetch_assoc($query)){ $a = $row['id'] $b = $row['title'] $c = $row['content'] } لكن بكودنا الحالي نفس الفكرة بس مع تغيرmysql إلى mysqli وتغير المتغيرات إلى متغيرات من بنية class ليصبح الكود بالشكل التالي رمز PHP: while ($this->rows = $thise->query->fetch_array(MYSQLI_ASSOC)){ $this->data['i'] = $this->rows['id']; $this->data['t'] = $this->rows['title']; $this->data['c'] = $this->rows['content']; } // CLOSE WHILE وكودنا الحالي الان بهذا الشكل رمز PHP: class select_data { private $quer; private $rows; private $data; public function get_data(){ global $db; $this->quer = $db->query("SELECT * FROM news ORDER BY id ASC"); if(!$this->quer){ $this->data['eroor'] = "يوجد خطأ في جلب البيانات"; }elseif(!$this->quer->num_rows){ $this->data['eroor'] = "لا توجد اخبار حاليا"; }else{ while ($this->rows = $thise->query->fetch_array(MYSQLI_ASSOC)){ $this->data['i'] = $this->rows['id']; $this->data['t'] = $this->rows['title']; $this->data['c'] = $this->rows['content']; } // CLOSE WHILE }// close else }// close function }// close class هل اتضحت الفروقات بين البرمجة العادية وبنية الكلاس الان نكمل نضع متغير اخر لتسيق ظهور النص رمز PHP: $this->data['showall'] ونضع بيانات الروز داخل TR رمز PHP: $this->data['showall'] .= " ".$this->data['i']." ".$this->data['t']." "; الخطوه اختيارية ممكن ان تنسق بياناتك كما تحب ان تظهر المهم انا اخترة جداول نكمل لاحظ اني وضعة ( . ) نقطة قبل علامة = وهذا معناه كرر العملية لان احنا بنستخرج البيانات خارج الوايل نكمل نرجع قيمة الدالة رمز PHP: return $this->data; نقوم بتشغيل الكلاس ليصبح الكود كامل رمز PHP: الان خلصنا من ملف الكلاس باقي لدينا ملف العرض ننشئ ملف باسم index.php داخل المجلد الرئيسي class ![]() داخل الملف نقوم بستدعاء ملف الاتصال + ملف الكلاس رمز PHP: include("cofing/cofing.php"); // جلب ملف الاتصال بالقاعدة include("s_class/class_select.php"); // جلب ملف الكلاس الان بنقوم بتشغيل الفانكشن ولكن بطريقة مختلفة شوي اول كنا نشغلها بهذا الشكل رمز PHP: $st->get_data(); لكن الان بنعمل تغير بسيط بنضع الفانكشن بمتغير ليصبح رمز PHP: $e = $st->get_data(); لماذا انا اسندة للفانكشن متغير الجواب لاني ساقوم بستخراج المتغيرات الموجودة فيها والتي لم اعرفها بـ public الان بطلع بيانات المصفوفة كيف بطلعها داخل الملف لاحظ مو احنا قمنا بتحويل المتغير data إلى مصفوفة رمز PHP: $this->data['eroor'] = "يوجد خطأ في جلب البيانات"; لحظ ان لدي متغير data يحمل اسم eroor كيف اظهر الخطأ الجواب بهذا الشكل رمز PHP: echo $e['eroor']; بحيث ان المتغير $e هو المتغير إللي شغلنا به الفانكشن و eroor هو اسم المصفوفة اللي تظهر الخطأ طيب نكمل نقوم بعمل table لاظهار البيانات رمز PHP: # عنوان الخبر والان نستدعي كود المصفوفة إللي وضعناه في الفانكشن باسم showall بهذا الشكل رمز PHP: واخيرا اغلاق table رمز PHP: ليصبح كود الاندكس كامل رمز PHP: # عنوان الخبر باقي خطوه انوه لها ان الكلاسات تعريف المتغيرات تحملة اسماء او خصائص للمتغير ومن ضمنها private و public private هو خاص تستخدمة داخل بنية الكلاس public هو عام وممكن ان نطلع بيانات المتغير إللي خاصيتة public خارج الكلاس طيب انت بتسال لماذا انا لم استخدم public دام انا بطلع المتغير خارج الجواب ليسى إلا اني اعلمك كيف تقدر تتحكم بالكلاس وسأشرحه هنا لتقدر تفهم الاثنين مع بعض لاحظ اول شيء نقوم بتغير رمز PHP: private $data; إلى رمز PHP: public $data; واترك كل شيء كما هو في الكلاس ثم تعال لنقم بتشغيل المتغيرات في ملف index لحظ معي اني قمت بطلب المتغير مباشرة بدون تحويل الداول رمز PHP: # عنوان الخبر رمز PHP: $st->data['eroor'] data هو اسم المتغير إللي عرفناه وعطيناه خاصية public وهو عام لكن انتبة لتطبع المتغير بهذا الشكل وخاصيتة تساوي private سيظهر لديك الخطأ التالي رمز PHP: Fatal error: Cannot access private property select_data::$data in C:\AppServ\www\class\index.php on line 12 لاحظ الخطأ يقول لك ان المتغير $data خاصيتة private لا يستطيع تشغيلة خارج الكلاس بكذا اكون خلصت درس الاستعلام واي استفسار تحت امركم الدرس التالي ان شاء الله 4 - برمجة كلاس لحذف بيانات من القاعدة + طريقة الحذف تتم بملف اخر منفصل عن ملف الحذف جاري اعداد الدرس واخيرا ان اصبت من الله وحدة وان اخطأت فمن نفسي والشيطان تمنياتي للجميع بالتوفيق ولا تنسوني من صالح دعواتكم اخوكم عبدالله الصور المصغرة المرفقة ![]() ![]() |
مواقع النشر (المفضلة) |
| |
![]() | ||||
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
[ دورة ] فهم البرمجة بالكلاسات الدرس الثاني ( الادخال لقاعدة البيانات ) | محروم.كوم | منتدى أخبار المواقع والمنتديات العربية والأجنبية | 0 | 03-14-2014 07:12 AM |
[ دورة ] دورة فهم البرمجة بالكلاسات والفانكشن ( الدرس الاول ) تعريف function & class | محروم.كوم | منتدى أخبار المواقع والمنتديات العربية والأجنبية | 0 | 03-12-2014 10:00 PM |
[ درس ] دورة تعليم html - الدرس الثالث | محروم.كوم | منتدى أخبار المواقع والمنتديات العربية والأجنبية | 0 | 03-04-2014 04:30 PM |
[ دورة ] الدرس الثالث CakePHP 2.0.x | محروم.كوم | منتدى أخبار المواقع والمنتديات العربية والأجنبية | 0 | 12-09-2011 01:30 AM |
[درس] دورة تصميم البنرات الدرس الثالث | محروم.كوم | منتدى أخبار المواقع والمنتديات العربية والأجنبية | 0 | 11-26-2011 06:50 PM |