السلام عليكم
اريد ان اقدم هذا درس تقسيم النتائج على عده صفحات ...استفدت من كود مكتوب في احدى المواقع الانجليزية
وهذا الدرس في ابسط صوره ويمكن تطويره ليصبح افضل...
اتمنى لكم الاستفاده
اولا :
- نستدعي الملف الذي سيكون به الاتصال بقاعدة البيانات .
- ونقوم بعمل متغير ونعطيه قيمة اسم الصفحة التي نعمل بها ... هذا المتغير نستفيد منه في عملية الاستدعاء التي ستتم لاحقا للصفحة .
ثانيا :
- نعرف متغير $from .... هذا المتغير الفائده منه في عبارة select عند استدعاء السجلات لصفحة معينة . نحدد بهذا المتغير بداية رقم السجل المطلوب بالنسبة لهذه الصفحة .يأخذ في البداية القيمة 0.
- نعرف متغير $limit .... فائده هذا المتغير في تحديد عدد السجلات المطلوب عرضها في الصفحة الواحده.
ثالثـــا :
- نقوم بعمل select لجميع البيانات من الجدول .. لنحصل من هذه البيانات على العدد الكلى للسجلات التي لدينا ونضع النتيجه في المتغير $num .
رابعــــا :
- لتحديد السجلات التي سوف تعرض في الصفحة ....
نقوم بعمل select للبيانات من الجدول لكن بالطبع ليس جميع البيانات بل بيانات تحدد بالمتغيرين اللذين قمنا بتعريفهما سابقا وهما $limit و $from ... لكن لماذا هذين المتغيرين ... لان المتغير $limit نحدد به عدد السجلات في هذه الصفحة والمتغير $from نحدد به من اين نبدأ ... نلاحظ من الخطوات السابقة قمنا بإعطاء المتغير $from القيمة 0 وذلك لاننا نريد استعراض هنا الصفحة الاولى (0) فالصفحه الاولى تبدأ من السجل الاول الى القيمه التي وضعت في المتغير $limit . ولكن لماذا نبدأ بالرقم 0 بالنسبة للمتغير $from مع اننا نبدأ طبعا بالسجل رقم 1 ذلك لاننا نستخدم الامر Limit ( من اوامر SQL ) .
- نطبع البيانات السابقة .
خامســـا :
- نريد هن عمل hyperlink لباقي الصفحات المتبقية ..
... نعرف متغير $i ونعطيه القيمه 0 سنستفيد من هذا لمتغير لاحقا ..
....نستخرج عدد الصفحات التي ستنتج من قسمة المتغيرين اللذين يمثلان عدد السجلات الكلية $num و المتغير الذي به قيمه عدد السجلات التي ستعرض في كل صفحة $limit . ونستخدم الداله ceil للتقريب .
.... نستخدم الحلقة for لطباعة ارقام الصفحات وذلك عن طريق المتغير $l ....
..... داخل الحلقة نجد شرط IF لاعطاء الارقام خاصية hyperlink ماعدا الصفحة المتواجدين بها ويتحقق ذلك عن طريق else .... (الشرط هو اذا لم تكن قيمة $i لاتساوي قيمة $from) ... مثلا اذا كنا في الصفحة 0 تكون قيمة $from = 0 فتكون الصفحة 0 من غير hyperlink .....
..... قيمة المتغير $i تزيد بالمعادلة التالية وبها نحدد قيمة المتغير $from ...
الكود
require "config.php"; $page_name="new.php";
$from=$_GET['from']; // To take care global variable if OFF
if(!($from > 0)) { // This variable is set to zero for the first page
$from = 0;
}
$limit = 6; // No of records to be shown per page.
/////////////// WE have to find out the number of records in our table. We will use this to break the pages///////
$query2=" SELECT * FROM student_adv ";
$result2=mysql_query($query2);
echo mysql_error();
$num=mysql_num_rows($result2);
/////// The variable nume above will store the total number of records in the table////
////////////// Now let us start executing the query with variables $eu and $limit set at the top of the page///////////
$query=" SELECT * FROM student_adv limit $from, $limit ";
$result=mysql_query($query);
echo mysql_error();
//////////////// Now we will display the returned records in side the rows of the table/////////
while($record = mysql_fetch_array($result))
{
echo $record[id]." ";
echo $record[name]." ";
echo $record[mark]."
";
}
////////////////////////////// End of displaying the table with records ////////////////////////
$i=0;
$no=ceil($num/$limit);
for($l=0;$l<$no;$l++){
if($i <> $from){
echo " $l ";
}
else {
echo "$l";
} /// Current page is not displayed as link and given font color red
$i=$i+$limit;
}ان اخطأت في شى سامحوني
في الشرط
if($i <> $from){ echo $l}
ابدلها ب
if($i <> $from){
echo " <a href='$page_name?from=$i'><font face='Verdana' size='2'>$l</font></a> ";
}