|
بقعة لغات البرمجة يناقش هاذا المنتدى لغات البرمجة فيجوال بيسيك , فيجوال سي ++ , دلفي , أكسيس , أوراكل , جافا , الاسمبلي, بي اتش بي, HTML , .. |
انشر الموضوع |
|
أدوات الموضوع | انواع عرض الموضوع |
10.08.2012, 06:56 | المشاركة رقم: 1 | ||||||||||||||||||||||||||||||||
|
المنتدى :
بقعة لغات البرمجة
اليوم سنتعرف على كيفية برمجة نظام تعدد صفحات بسيط جدا لكن لاباس به يفي بالغرض في البداية يجب ان تحدد Get مثلا في الرابط نجد كالتالي رمز PHP: http://localhost/cms/index.php?page=1 page هذه التي يجب ان تحدد انا مثلا اخترت page انت اختر ماتريده اول شيئ سنقوم به هو جلب عدد القيم في الجدوول مثلا المواضيع او التدوينات او التعليقات او اي شيئ رمز PHP: $count = mysql_query('SELECT COUNT(id) AS numb FROM articles ORDER BY id desc'); هذا مثال للاستعلام يوجد شيئ قد يكون غامضا للبعض وهي رمز PHP: COUNT(id) AS numb في البداية عبر الامر Count جلبنا عدد القيم وامرناه ان يحسب عبر id كي يسهل الامر على السيرفر رمز PHP: COUNT(id) هنا اقرننا النتيجة في متغير باسم numb رمز PHP: AS numb نحول النتائج الى مصفوفة رمز PHP: $array = mysql_fetch_assoc($count); بعدها نخزن عدد النتائج في القاعدة في متغير رمز PHP: $number = $array['numb']; طبعا numb هو الاسم الذي حددناه في الاستعلام لم نعد في حاجة الى الاستعلام لذلك سنحذف كل مخلفاته من اجل اراحة السيرفر رمز PHP: mysql_free_result($count); نحدد في متغير عدد النتائج التي نريدها في كل جدول رمز PHP: $PerPage = 5; مثلا انا اخترت 5 يمكنك ان تختار ما تريد على حسب الحاجة الان نقوم بجلب عدد النتائج في الصفحة عبر عملية قسمة بسيطة رمز PHP: $nbPage = ceil(abs($number/$PerPage)); حيث نقسم عدد النتائج في الجدول على عدد النتائج في الصفحة استعملت الدالة ceil لازالة الفاصلة من الرقم اما الدالة abs فهي للتاكد من ان العدد موجب نضع شرط طويل نوعا ما لكنني ساقوم بشرحه بالتفصيل رمز PHP: if(isset($_GET['page']) && $_GET['page'] > 0 && $_GET['page'] <= $nbPage && preg_match('#^[0-9]+$#',$_GET['page'])){ $cPage = $_GET['page']; } التحقق من وجود ال get الخاصة ب page رمز PHP: isset($_GET['page']) التحقق من انه اكبر من 0 لانه مستحيل ان يكون رقم الصفحة 0 رمز PHP: $_GET['page'] > 0 نتحقق من انه لا يساوي او اكبر من عدد النتائج في الصفحة رمز PHP: $_GET['page'] <= $nbPage نتحقق من انه رقمي فقط رمز PHP: && preg_match('#^[0-9]+$#',$_GET['page']) ويمكنك استعمال الدالةا is_numeric فهي تفي بي الغرض ان تحققت كل الشروط عين قيمة المتغير هي قيمة get الخاصة ب page رمز PHP: $cPage = $_GET['page']; ان لم تحقق الشروط اجعلها 1 رمز PHP: else{ $cPage = 1; } وهي الصفحة الاولى نضع استعلامنا من اجل العرض بطريقة عادية فقط سنضيف الخاصية limit رمز PHP: LIMIT '.(($cPage-1) * $PerPage).','.$PerPage مثال للاستعلام رمز PHP: $Query = mysql_query('SELECT * FROM articles ORDER BY id desc LIMIT '.(($cPage-1) * $PerPage).','.$PerPage); بعدها ستعرض النتائج بشكل عادي رمز PHP: while($Rows = mysql_fetch_assoc($Query)){ } بشكل طبيعي الان بقي فقط عرض تعدد الصفحات نقوم بتعيين متغيرين للسابق و التالي رمز PHP: $next = $cPage + 1; $prev = $cPage - 1; باضافة قيمة 1 او نقصها من المتغير الذي عينناه في الشرط الطويل :Cool: اوكي ننشئ متغير نجعل قيمته فارغة كي لا تعرض اخطاء في النسخ القديمة من php رمز PHP: $pagination = ''; نتحقق من ان الصفحة الحالية اصغبر من عدد الصفحات رمز PHP: if($cPage < $nbPage){ $pagination .= '<span><a href="index.php?page='.$next.'"> التالي </a></span>'; } وان تحققت اضيف محتوى الى المتغير pagination وان لم يتحقق اضف محتوى لكن فقط span بدون رابط رمز PHP: else{ $pagination .= '<span class="disabled"> التالي </span>'; } نضع تكرار لارقام الصفحات رمز PHP: for($i=1;$i<=$nbPage;$i++){ } نتحقق ان كانت الصفحة الحالية تساوي قيمة المتغير i رمز PHP: if($i == $cPage){ $pagination .= '<span class="current">'.$i.'</span>'; } وان تحققت اضيف قيمة للمتغير pagination لكن بدون رابط فقط span مع كلاس تحدد قيمه انت من ملفات style الخاصة بك وان لم يكن اطبع حتى الرابط رمز PHP: else{ $pagination .= '<a href="index.php?page='.$i.'">'.$i.'</a>'; } نفس الامر الخاص ب التالي نضعه للسابق فقط من قلب الشرط بدل اصغر سنجعله اكبر رمز PHP: if($cPage > $nbPage){ $pagination .= '<span><a href="index.php?page='.$prev.'"> السابق </a></span>'; }else{ $pagination .= '<span class="disabled"> السابق </span>'; } ليسصبح كود pagination رمز PHP: ############### Start Pagination ############### $next = $cPage + 1; $prev = $cPage - 1; $pagination = ''; if($cPage < $nbPage){ $pagination .= '<span><a href="index.php?page='.$next.'"> التالي </a></span>'; }else{ $pagination .= '<span class="disabled"> التالي </span>'; } for($i=1;$i<=$nbPage;$i++){ if($i == $cPage){ $pagination .= '<span class="current">'.$i.'</span>'; }else{ $pagination .= '<a href="index.php?page='.$i.'">'.$i.'</a>'; } } if($cPage > $nbPage){ $pagination .= '<span><a href="index.php?page='.$prev.'"> السابق </a></span>'; }else{ $pagination .= '<span class="disabled"> السابق </span>'; } ############### End Pagination ############### الان كي تظهر الاستعلام فقط ستطبع المتغير pagination ان كنت تستعمل smarty فضع التالي رمز PHP: $smarty->assign('pagination',$pagination); ستطبع المتغير بشكل عادي كباقي المتغيرات في القالب كالتالي رمز PHP: {$pagination} اما ان كنت تستعمل القالب السهل فالامر ابسط بكثير فقط ضع التالي في القالب رمز PHP: {pagination} الى هنا ننهي الدرس ان شاء الله يكون واضح |
||||||||||||||||||||||||||||||||
01.12.2012, 07:00 | المشاركة رقم: 2 | ||||||||||||||||||||||||||||||||||
|
كاتب الموضوع :
مريم سليمان
المنتدى :
بقعة لغات البرمجة
في انتظار جديدك دائما |
||||||||||||||||||||||||||||||||||
14.12.2012, 02:58 | المشاركة رقم: 3 | ||||||||||||||||||||||||||||||||||
|
كاتب الموضوع :
مريم سليمان
المنتدى :
بقعة لغات البرمجة
|
||||||||||||||||||||||||||||||||||
11.05.2013, 11:17 | المشاركة رقم: 4 | ||||||||||||||||||||||||||||||||||
|
كاتب الموضوع :
مريم سليمان
المنتدى :
بقعة لغات البرمجة
يعطيك الف الف عافيه موضوع رااائع وجهود أروع ننتظر مزيدكم بشوووق |
||||||||||||||||||||||||||||||||||
04.06.2013, 02:33 | المشاركة رقم: 5 | ||||||||||||||||||||||||||||||||||||
|
كاتب الموضوع :
مريم سليمان
المنتدى :
بقعة لغات البرمجة
يعطيك الف عافيه يااالغلا لاعدمنا تميزك لآحرمنا الله من جديدك |
||||||||||||||||||||||||||||||||||||
06.07.2013, 10:32 | المشاركة رقم: 6 | ||||||||||||||||||||||||||||||
|
كاتب الموضوع :
مريم سليمان
المنتدى :
بقعة لغات البرمجة
موضوع رااائع وجهود أروع ننتظر مزيدكم بشوووق |
||||||||||||||||||||||||||||||
13.07.2013, 11:23 | المشاركة رقم: 7 | ||||||||||||||||||||||||||||||||||
|
كاتب الموضوع :
مريم سليمان
المنتدى :
بقعة لغات البرمجة
تسلم الايادي على ااالطرح يعطيك الف عافيه يااالغلا لاعدمنا تميزك لآحرمنا الله من جديدك |
||||||||||||||||||||||||||||||||||
07.08.2013, 07:34 | المشاركة رقم: 8 | ||||||||||||||||||||||||||||||||||
|
كاتب الموضوع :
مريم سليمان
المنتدى :
بقعة لغات البرمجة
ننتظر جديدك بكل شوق لاعدمناك .. |
||||||||||||||||||||||||||||||||||
14.01.2014, 12:02 | المشاركة رقم: 9 | ||||||||||||||||||||||||||||||||||||||
|
كاتب الموضوع :
مريم سليمان
المنتدى :
بقعة لغات البرمجة
|
||||||||||||||||||||||||||||||||||||||
16.01.2014, 05:32 | المشاركة رقم: 10 | ||||||||||||||||||||||||||||||||
|
كاتب الموضوع :
مريم سليمان
المنتدى :
بقعة لغات البرمجة
واصل تالقك معنا فى المنتدى بارك الله فيك خيتى ننتظر منك الكثير من خلال إبداعاتك المميزة لك منـــــــ إجمل تحية ــــــــــى |
||||||||||||||||||||||||||||||||
مواقع النشر (المفضلة) |
الكلمات الدلالية (Tags) |
الحب, الصفحات, برمجة, تعدد, نظام |
أدوات الموضوع | |
انواع عرض الموضوع | |
|
|
المواضيع المتشابهه | ||||
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
مشغولة بعيد الحب 2 | adam | الفلاشات المنوعة | 1 | 02.04.2010 07:11 |
مشغولة بعيد الحب 1 | adam | الفلاشات المنوعة | 1 | 02.04.2010 07:10 |
مشغولة بعيد الحب 2 | adam | الفلاشات المنوعة | 1 | 31.03.2010 01:06 |
مشغولة بعيد الحب 3 | adam | الفلاشات المنوعة | 1 | 31.03.2010 01:05 |
مشغولة بعيد الحب 1 | أم شادن | الفلاشات الانشادية | 3 | 28.10.2009 01:18 |