![]() |
أضيف في: 19-5-1427هـ | |||
---|---|---|---|---|
مقدمة :
</FONT> تعدد صفحات نتائج الاستعلام من قواعد البيانات له فائدة كبيرة جدا . </FONT> تخيل انه لديك في قسم من اقسام موقعك 100 سجل , وتريد عرضها للزائر , فكم من </FONT> لذلك وُجدت الحاجة لمايعرف بتعدد الصفحات , وهو ان يتم عرض كل 10 سجلات (مثلا ) </FONT> في البداية يجب ان نعرف انه عند الاستعلام من قاعدة البيانات , يمكننا تحديد من </FONT> مثال : </FONT> mysql_query(“SELECT column FROM table ORDER BY column LIMIT 17,5”) نتيجة هذا الاستعلام ستعرض لنا 5 سجلاتابتداء من بعدالسجل رقم 17 </FONT> ( تفسير:النتائج ستكون عبارة عن السجلات 18 ,19 , 20 , 21, 22) </FONT> الشرح : </FONT> من هذا المنطلق , سنقوم بتحديد قيمة اولا لعدد السجلات اللتي نريد عرضها في كل صفحة ونضعها في متغير $perpage </FONT> الان عرفنا عدد السجلات التي نريد اظهارها في كل صفحة ويتبقى علينا رقم السجل الذي سنبدأ الاستعلام من بعده ( في المثال السابق 17 ) </FONT> سنسمي هذا المتغير $count </FONT> ونقوم بارسال قيمته للمتصفح لكي يتم الاستعلام بواسطتها </FONT> لكي نأخذ قيمة count من المتصفح , نستخدم $_GET كما يلي : </FONT> $count=$_GET[‘count’]; اذا لم تكن هناك قيمة لـ count فسنعين لها القيمة صفر </FONT> if (!$count) { $count=0;} بعد عرض نتائجنا الناتجة عن الاستعلام التالي : </FONT> $query2=mysql_query(“SELECT column FROM table ORDER BY column LIMIT $count,$perpage”) or die(“can’t get the table”); سنقوم باجراء استعلام آخر لمعرفة اجماليعدد السجلات الموجودة لدينا في القاعدة </FONT> $TotalRecords=mysql_query(“SELECT column FROM table ORDER BY column “) or die(“can’t get the table”); $check_end=mysql_num_rows($TotalRecords); الان خزّنا عدد السجلات الموجودة لدينا في المتغير $check_end </FONT> يأتي دور عمل تعدد الصفحات </FONT> $i=1; عدد السجلات التي سنعرضها في كل صفحة نعين قيمتها للمتغير $perpage </FONT> $perpage=2; الان , سنستخدم متغير للرقم الذي سيتم اعطاء قيمتة للمتغير count وسميناه $next واعطينا مبدأيا القيمة صفر </FONT> $next=0 ; الان نبدأ بجملة شرطية , مفادها انه طالما المتغير $next اقل من اجمالي السجلات $check_end سيتم تنفيذ الاوامر : </FONT> while($next<=$check_end){ الان سنضع شرطا اخر داخل الشرط السابق , وظيفتها عدم وضع رابط على رقم الصفحة التي يتصفحها الزائر : </FONT> if ($count==$next){echo” $i “;} بخلاف ذلك الشرط , سيتم وضع رابط على رقم الصفحة , متضمنا قيمة المتغير count والتي هي المتغير next </FONT> else شرح الاوامر : </FONT> اولا كتبنا انه لو كان المتغير $next يساوي المتغير $count فسيطبع لنا رقم الكود كاملا : </FONT> [color=blue]$count=$_GET[‘count’]; if (!$count) { $count=0;} $TotalRecords=mysql_query(“SELECT column FROM table ORDER BY column “) or die(“can’t get the table”); $check_end=mysql_num_rows($TotalRecords); $perpage=2; $query2=mysql_query(“SELECT column FROM table ORDER BY column LIMIT $count,$perpage”) or die(“can’t get the table”); //سيتم عرض السجلات الناتجة عن الاستعلام $i=1; $next=0 ; while($next<=$check_end) [/color] |
||||
الكاتب: أبو عامر |