تسجيل الدخول
اسم المستخدم
كلمة المرور

البحث في المكتبة


بحث متقدم

جديد الدروس
آخر 30 درس


إحصائيات المكتبة
المتواجدون الأن 1
عدد الأعضاء 1
عدد التصنيفات 21
عدد الدروس 813
عدد الردود 814
عـودة للخلف   دروس كتاب العرب > مكتبة الدروس > الأنترنت و برمجة المواقع

الرد على الموضوع
تفاصيل الدرس
خيارات الدرس تقييم الدرس
تحميل الدرس ككتاب إلكتروني PDF
تحميل الدرس ككتاب إلكتروني PDF
( يتم تشغيل الإمتداد PDF بواسطة برنامج يمكنك تحميله من هنا )
تقييم الدرس:
عنوان الدرس كيفية عمل تعدد لصفحات عرض النتائج ؟؟
كاتب الدرس admin
تاريخ الإضافة 07-11-2005
زمن الإضافة 09:59 AM
عدد مرات المشاهدة 1388

  #1  
admin
 
الدروس التي أضافها: 288
المشاركات: n/a
Smile كيفية عمل تعدد لصفحات عرض النتائج ؟؟

تعدد صفحات نتائج الاستعلام من قواعد البيانات له فائدة كبيرة جدا .

تخيل انه لديك في قسم من اقسام موقعك 100 سجل , وتريد عرضها للزائر , فكم من
الوقت سيستغرق عرض هذه النتائج ( ان استطاع المتصفح اصلا تحمل ذلك العدد الهائل ) ,
كما انها ستسبب ضغطا كبيرا على قاعدة البيانات

لذلك وُجدت الحاجة لمايعرف بتعدد الصفحات , وهو ان يتم عرض كل 10 سجلات (مثلا )
في كل صفحة , على ان يوجد شريط للتصفح باسفل الصفحة يؤدي لبقية صفحات نتائج هذا الاستعلام

في البداية يجب ان نعرف انه عند الاستعلام من قاعدة البيانات , يمكننا تحديد من
اين يبدأ الاستعلام وكم سجلا نريد ان نستعلم عنها

مثال :

mysql_query("SELECT column FROM table ORDER BY column LIMIT 17,5")

نتيجة هذا الاستعلام ستعرض لنا 5 سجلاتابتداء من بعدالسجل رقم 17

( تفسير:النتائج ستكون عبارة عن السجلات 18 ,19 , 20 , 21, 22)

الشرح :

من هذا المنطلق , سنقوم بتحديد قيمة اولا لعدد السجلات اللتي نريد عرضها في كل صفحة ونضعها في متغير $perpage

الان عرفنا عدد السجلات التي نريد اظهارها في كل صفحة ويتبقى علينا رقم السجل الذي سنبدأ الاستعلام من بعده ( في المثال السابق 17 )

سنسمي هذا المتغير $count

ونقوم بارسال قيمته للمتصفح لكي يتم الاستعلام بواسطتها

لكي نأخذ قيمة count من المتصفح , نستخدم $_GET كما يلي :


$count=$_GET['count'];

اذا لم تكن هناك قيمة لـ count فسنعين لها القيمة صفر

if (!$count) { $count=0;}

بعد عرض نتائجنا الناتجة عن الاستعلام التالي :


$query2=mysql_query("SELECT column FROM table ORDER BY column LIMIT $count,$perpage")
or die("can't get the table");

سنقوم باجراء استعلام آخر لمعرفة اجماليعدد السجلات الموجودة لدينا في القاعدة

$query1=mysql_query("SELECT column FROM table ORDER BY column ")
or die("can't get the table");

$check_end=mysql_num_rows($query1);

الان خزّنا عدد السجلات الموجودة لدينا في المتغير $check_end

يأتي دور عمل تعدد الصفحات
اولا نضع عداد للصفحات ونعين له القيمة 1 مبدأيا

$i=1;

عدد السجلات التي سنعرضها في كل صفحة نعين قيمتها للمتغير $perpage

$perpage=2;

الان , سنستخدم متغير للرقم الذي سيتم اعطاء قيمتة للمتغير count وسميناه $next واعطينا مبدأيا القيمة صفر

$next=0 ;

الان نبدأ بجملة شرطية , مفادها انه طالما المتغير $next اقل من اجمالي السجلات $check_end سيتم تنفيذ الاوامر :

while($next<=$check_end){

الان سنضع شرطا اخر داخل الشرط السابق , وظيفتها عدم وضع رابط على رقم الصفحة التي يتصفحها الزائر :

if ($count==$next){echo" $i ";}

بخلاف ذلك الشرط , سيتم وضع رابط على رقم الصفحة , متضمنا قيمة المتغير count والتي هي المتغير next

else{echo" <a href='page.php?count=$next'>$i</a>";}
$next=$next+$perpage;$i++; }



شرح الاوامر :

اولا كتبنا انه لو كان المتغير $next يساوي المتغير $count فسيطبع لنا رقم
الصفحة $i غير نشطة
( يعني لو كان المتغير يساوي الصفحة التي نستعرضها فلن نضع
عليها رابطا لاننا نستعرضها فعلا )
اذا لم يتحقق هذا الشرط فانه سينفذ مايلي وهو
وضع رابط على رقم الصفحة يعطي للمتصفح قيمة المتغير count القيمة $next
بعد ذلك
, سنزيد قيمة المتغير $next بقيمة مقدارها $perpage لكي يتم اضافتها لرابط
رقم الصفحة التالية
الان نزيد رقم الصفحة $i بمقدار واحد كما يلي

$i++;

الكود كاملا :


$count=$_GET['count'];

if (!$count) { $count=0;}

$query1=mysql_query("SELECT column FROM table ORDER BY column ")
or die("can't get the table");

$check_end=mysql_num_rows($query1);

$query2=mysql_query("SELECT column FROM table ORDER BY column LIMIT $count,$perpage")
or die("can't get the table");
//سيتم عرض السجلات الناتجة عن الاستعلام

$i=1;

$perpage=2;

$next=0 ;

while($next<=$check_end){
if ($count==$next){echo" $i";
}else{
echo" <a href='page.php?count=$next'>$i</a>";}
$next=$next+$perpage;$i++;
}
الرد باقتباس
الرد على الموضوع



إنتقل إلى

مواضيع مشابهة
الموضوع أضاف الدرس القسم الردود آخر مشاركة
الدرس العاشر محب الله ورسوله قواعد البيانات في فيجوال بيزيك 6 0 03-25-2005 05:27 PM

المجلة الإلكترونية - المنتديات - مكتبة البرامج
مكتبة الدروس - قسم الماسنجر
الإتصال بنا - الإعلان لدينا
mesothelioma cancer

Powered by vBulletin