أستاذ مصطفى -
www.khdma.com:الدالة تعمل بنجاح وجميلة لأنها تستخدم أستعلام واحد لاكن أريد أن تعطينى فى النهاية الناتج فى مصفوفة كى استخدموا فى القالب.
القائد : هذا الكائن يرهق السيرفر لأنوا يعمل على الأستدعاء الذاتى وفى كل أستدعاء يعمل أستعلام وفى النهاية يقع السيرفر
كود PHP:
function listJumpf($listJump,$catid)
{
global $row,$cat_id;
$Jump .= ' ';
$Jump .= "حدد قسم مما يلي";
$Jump .= " -------------------------------- ";
$result= $this->query("select * from rafia_cat where catType='$catid' and subcat='0' order by ordercat ASC");
$li = 1;
while($row=$this->dbarray($result))
{
$Jump .= " $li ) " . $row["title"] . "";
// $li;
$Jump .= $this->sublistJump($listJump,$row['id'],$li);
$Jump .= " -------------------------------- ";
$li++;
}
$Jump .= ' ';
return $Jump;
}
أستاذ خالد- hilaby: دالتك تقريبآ هى ما أبحث عنها لاكن كيف أخرج جميع النواتج عن طريق foreach او while
وشكرآ لك من شارك فى الموضوع وياليت تضعلى مثال بسيط لأستخراج العناصر من while || foreach
الإستدعاء الذاتي بشكل عام لا يرهق السيرفر ...
لكن اداء الدالة نفسها هو ما سيحدد اذا كان الاستدعاء الذاتي لها سيرهق السيرفر
وايضا موضوع المحدودية في النتائج
مثلا لديك هذا الكود
كود PHP:
$a = 5;
$b = get_plus($a, 6);
وكانت الدالة هي
كود PHP:
function get_plus($number, $times)
{
$number = $number *2;
if($times < 1)
return $number;
else
return get_plus($number, ($times -1) );
}
فالكود لن يكون يسبب ضغطا على السيرفر ولن يرهقه ولن يسقطه
لكن لو كانت الدالة هي
كود PHP:
function get_plus($number, $times)
{
$number = $number *2;
return get_plus($number, ($times -1) );
}
فستجد ان الاستدعاء الذاتي لن ينتهي ابدا اي انه غير محدود وقد يسقط السيرفر ايضا
الأمر الآخر هو طبيعة العمليات التي ستقوم بها في الدالة نفسها .. مثلا الدالة في المثال الأول ستقوم بإعادة المدخل مضروبا في 2 لعدد المرات التي تحددها .. يعني مجرد عمليات حسابية بسيطة جدا على السيرفر
اذكر اني قمت منذ مدة بتعديل برمجي على سكربت .. وجدت ان الصفحة الرئيسية للموقع يستدعي دالة معينة اكثر من 2000 مرة وفي كل استدعاء يقوم بالاتصال بقاعدة البيانات .. هل ترى معي الضغط الذي يسببه الاتصال بقاعدة البيانات 2000 مرة في الصفحة الواحدة؟؟
بالنسبة للدالة التي تتحدث عنها والخاصة بالاقسام الفرعية والتي قلت انها تسبب ارهاق للسيرفر
اتفق معك ان الدالة تحتاج لبعض التعديلات حتى يصبح ادائها افضل .. قد قمت انا بعمل تعديل على الكلاس هذا بحيث اصبح يعيد مصفوفة عوضا عن القائمة المنسدلة لكني بعيد حاليا عن كمبيوتري الشخصي حيث احفظ ملفاتي
تقبل مني ارق تحية