الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تقسيم النتائج الى عدة صفحات

بدأه mana80 في 18 أبريل 2008 · 5 رد · 1,450 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

وهذا الدرس في ابسط صوره ويمكن تطويره ليصبح افضل...

اتمنى لكم الاستفاده

اولا :

- نستدعي الملف الذي سيكون به الاتصال بقاعدة البيانات .

- ونقوم بعمل متغير ونعطيه قيمة اسم الصفحة التي نعمل بها ... هذا المتغير نستفيد منه في عملية الاستدعاء التي ستتم لاحقا للصفحة .

ثانيا :

- نعرف متغير $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> ";
}

تم تعديل هذه المشاركة بواسطة محمد معاشر في 24 أبريل 2008 في 00:22

I Say Nothing

#2

اذا لم يكن الكود واضح تجدونه في الرفقات

Paging_1.rar

I Say Nothing

#3

اخي مشكور على الكود

ولكن يوجد مشكلة في الكود و هو عند تعدد الصفحات لو مثلا الناتج 40 صفحة تضهر بهذا الشكل

BACK 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 NEXT

ارجو التعديل علية لكي يظهر الناتج هكذا

BACK 0 1 2 3 ... 38 39 40 NEXT

#4

اخي man in dark , طلبك ليس منطقي , فمثلاً , انظر موضوع الصفحات في نتائج بحث جوجل , شوف تجد انها مقسمه مجموعات , مثلاً :

1 2 3 4 5 6 7 8 9 -->next

والصفحه الثانية :

10 1112 13 14 15 16 17 19 -->next

وهكذا ..

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

------------------------------------------------------------------------------------------------

gazabigBanner.jpg

------------------------------------------------------------------------------------------------

#5

انا اريدها مثل ما قلت اخي محمد معاشر

على شكل مجموعات

#6

شكرا اخي بس اشت استفشر اذا كانت النتائج من اكثر من جدول

كيف العمل

مواضيع مشابهة