إنضمامك إلي منتديات استراحات زايد يحقق لك معرفة كل ماهو جديد في عالم الانترنت ...

انضم الينا
استراحات زايد الصفحة الرئيسية


 
 
LinkBack أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 03-17-2014, 11:20 PM
عضو ماسي
بيانات محروم.كوم
 رقم العضوية : 503
 تاريخ التسجيل : Dec 2007
الجنس : female
علم الدوله :
 المشاركات : 2,100,670
عدد الـنقاط :3341
 تقييم المستوى : 2140


بسم الله الرحمن الرحيم


الحمد لله والصلاة والسلام على سيدنا محمد علية افضل الصلاة واتم التسليم
اللهم ليسى لنا علم إلا بما علمتنا وسع علمك كل شيء سبحانك ياذا الجلال والاكرام
اللهم علمنا ماينفعنا انك قادر على كل شيء


اما بعد

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

يمكنك متابعة الدرس السابق من الرابط التالي
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 - برمجة كلاس لحذف بيانات من القاعدة + طريقة الحذف تتم بملف اخر منفصل عن ملف الحذف
جاري اعداد الدرس
واخيرا ان اصبت من الله وحدة وان اخطأت فمن نفسي والشيطان
تمنياتي للجميع بالتوفيق ولا تنسوني من صالح دعواتكم اخوكم عبدالله



الصور المصغرة المرفقة
__DEFINE_LIKE_SHARE__
رد مع اقتباس
 

مواقع النشر (المفضلة)


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

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
[ دورة ] فهم البرمجة بالكلاسات الدرس الثاني ( الادخال لقاعدة البيانات ) محروم.كوم منتدى أخبار المواقع والمنتديات العربية والأجنبية 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


الساعة الآن 02:00 AM


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.5.2 TranZ By Almuhajir

RSS RSS 2.0 XML MAP HTML