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

شبكة ابن الخليج

Sitemap | Archive | Tag Could
معهد مطور - ينتهي الإعلان بتاريخ 16\10\2008
التسجيل البحث مشاركات اليوم اجعل جميع المنتديات مقروءة الأرشيف


عمل زر السابق والتالي في عرض صفحات نتائج الاستعلام

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

العودة شبكة ابن الخليج > منتديات تعليمية > دروس برمجة مواقع

رد
 
LinkBack أدوات الموضوع طرق مشاهدة الموضوع
قديم 04-30-2006, 11:09 مساءً   #1 (permalink)
اسرة ابن الخليج
 
الصورة الرمزية الهوى ماهو كلام
 
تاريخ التسجيل: Jul 2005
الدولة: *K S A*
المشاركات: 4,844
معدل تقييم المستوى: 655 الهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيط
إرسال رسالة عبر مراسل ICQ إلى الهوى ماهو كلام إرسال رسالة عبر مراسل MSN إلى الهوى ماهو كلام إرسال رسالة عبر مراسل Skype إلى الهوى ماهو كلام
عمل زر السابق والتالي في عرض صفحات نتائج الاستعلام


مقدمة :

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

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


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

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


مثال :

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

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

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

الشرح :

لعمل السابق والتالي في عرض الصفحات :

قبل البدأ لابد ان نعرف ان صيغة الاستعلام مع تحديد البداية والنهاية تكون على الشكل التالي :

$sql=mysql_query SELECT column FROM table ORDER BY id LIMIT $count,$perpage

وهذا الاستعلام يعني ان يحضر لنا ببيانات الحقل column من الجدول table ويتم ترتيبها حسب رقم id ويبدأ الاستعلام من بعد الحقل رقم count $ ويتم عددperpage $ حقل

الان نستفيد من هذه الميزة الرائعة على النحو التالي


في اول صفحتنا نقوم بأخذ قيمة $count عن طريق

count=$_GET 'count $

الان نحدد انه اذا كانت لاتوجد قيمة للمتغير count $ فسنعين له القيمة صفر كما يلي :

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

الان نقوم بعمل استعلام من قاعدة البيانات :

query=mysql_query SELECT cloumn FROM table ORDER BY cloumn$
or die can't get the table


الان نستعلم عن عدد النتائج التي حصلنا عليها , باستخدام الدالة mysql_num_rows
على النحو التالي :


check_end=mysql_num_rows $query$

الان $check_end هو مجموع النتائج الموجودة لدينا في الاستعلام
سنحدد الان عدد النتائج التي نريد عرضها في كل صفحة واعطاء قيمتها للمتغير $perpage كما يلي :


perpage=5 $

الان جاء وقت عرض البيانات : فسنجري استعلاما مرة اخرى ولكن هذه المرة سنحدد كمية البيانات المطلوبة ومن اين يبدأ الاستعلام ( كما شرحنا في اول سطر )

query1=mysql_query("SELECT cloumn FROM table ORDER BY id LIMIT $count,$perpage$
or die "can't get the table


بعد عرض البيانات , حان وقت عمل ازرار التصفح (السابق||التالي)
لعمل رابط (السابق) ( اي عرض الخمس نتائج السابقة مما يعني انقاص قيمة $count بمقدار خمسة )
فسنقوم بانقاص count ونخزن قيمته في المتغير $back


back=$count-$perpage $

الان ولكي نتأكد من عدم اعطاء اخطاء خلال عرض الصفحة الاولى (لان ناتج العملية السابقة سيكون بالسالب ) فسنقوم باضافة شرط يلغي تفعيل الرابط كما يلي :

}(if ($back<0
" || السابق " echo السابق


}else{
{"|| <a/> السابق< echo"<a href='page.php?count=$back


الان لعمل زر التالي , سنقوم اولا بزيادة قيمة count بنفس المقدرا $perpage وسنخزن القيمة في المتغير $next كما يلي :

next=$count+$perpage$

سنضع ايضا شرط لالغاء تنشيط الرابط اذا كانت قيمة count اكثر من عدد النتائج الموجودة في الاستعلام كما يلي :

} (if ($next>=$check_end
التالي echo
}else{


{"|| <a/> التالي< echo"<a href='page.php?count=$next

الكود كاملا :

sql=mysql_query SELECT column FROM table ORDER BY id LIMIT $count,$perpage $

count=$_GET['count $

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

query=mysql_query "SELECT cloumn FROM table ORDER BY cloumn $
or die can't get the table

check_end=mysql_num_rows $query$

perpage=5;$
query1=mysql_query("SELECT cloumn FROM table ORDER BY id LIMIT $count,$perpage$
or die can't get the table


سيتم عرض السجلات الناتجة عن الاستعلام //

back=$count-$perpage$

} ( if ($back<0
ll "l السابق echo
}else{
{"|| <a/> السابق< echo"<a href='page.php?count=$next

$next=$count+$perpage

{ (if ($next>=$check_end
التالي echo
}else{

{"|| <a/> التالي< echo"<a href='page.php?count=$next





من مواضيع الهوى ماهو كلام في المنتدى

الهوى ماهو كلام غير متواجد حالياً   رد مع اقتباس
قديم 08-30-2006, 05:59 صباحاً   #2 (permalink)
: Araby :

 
الصورة الرمزية كرم العربي
 
تاريخ التسجيل: Apr 2006
الدولة: ::In De GhEtTo::
المشاركات: 14,389
معدل تقييم المستوى: 53 كرم العربي نشيطكرم العربي نشيطكرم العربي نشيطكرم العربي نشيطكرم العربي نشيطكرم العربي نشيطكرم العربي نشيطكرم العربي نشيطكرم العربي نشيطكرم العربي نشيطكرم العربي نشيط
إرسال رسالة عبر مراسل MSN إلى كرم العربي
مشاركة: عمل زر السابق والتالي في عرض صفحات نتائج الاستعلام

شكرا لك اخوي الهوي ,,,





من مواضيع كرم العربي في المنتدى
كرم العربي غير متواجد حالياً   رد مع اقتباس
رد

العبارات الدلالية
عمل, عرض



الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
طرق مشاهدة الموضوع

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

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

المواضيع المتشابهه
الموضوعكاتب الموضوعالمنتدىمشاركاتآخر مشاركة
محمد بن عبد الله بن عبد المطلب (رسول الله عند المسلمين)صحوة العراقشخصية و تاريخ105-31-2008 03:53 صباحاً
جهاد الإسلاميين في فلسطينSniper deathشخصية و تاريخ004-15-2008 10:43 مساءً
اتصالات مصر تعلن عن مفاجأة في أعداد المشتركين قريباًالأخـبــارهواتف نقالة008-27-2007 07:00 صباحاً
الآن سنتعرف على الكثير من بلدان العالم وسبب إختيارها لألوان أعلامهاكرم العربيحوارات ثقافية عامة802-15-2007 05:04 صباحاً
النص الحرفي لتقرير ميليس حول اغتيال الحريري ..الهوى ماهو كلامحوارات ثقافية عامة810-26-2005 02:59 صباحاً


الساعة تعتمد على توقيت جرينتش +3. الساعة الآن 03:11 صباحاً.
Search Engine Optimization by vBSEO 3.1.0

Valid XHTML 1.0 Transitional Valid CSS!Powered by vBulletin® Version 3.7.1,
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd
Feeds:   XML   JS   RSS   RSS Feed