صفحة 1 من 1

ترقيم الصفحات في حالات زيادة اعداد المواضيع في الداتا بيس

مرسل: 09 ديسمبر 2010, 01:35
بواسطة harede
السلام عليكم

هذه اول فانكشن اقوم بعملها باستخدام php وهي خاصة بترقيم الصفحات في حالات زيادة اعداد المواضيع في الداتا بيس ارجو ان اكون وفقت في هذا العمل

كود: تحديد الكل

/* Variables
$record_no_per_page: Number of records per Page.
$number_per_page: Number of pages.
$record_start: Which Start from database.
$page_brwoser: Get the page number from the brwoser.
$page_indx: The index that used in while loop to count the pages 
$post_record: contains Records from database.
$record_no: Numnber of all Records in database.
$pages_no: Number of Pages ($record_no / $record_no_per_page).
$table_name: Name of the table from database.
*/


function page_numbering ($record_no_per_page, $number_per_page, $table_name){
    
    //Default values
    $page_indx         =     1;
    $record_start    =     0;
    $page_brwoser     =     1;
    
    if (isset($_GET['p'])) {
        $record_start =     ((intval(abs($_GET['p'])) - 1) * $record_no_per_page);
        $page_brwoser =     abs(intval($_GET['p']));
    }

    // Determine the numbers of rows in the database.
    $post_record     =     mysql_query("SELECT * FROM $table_name");
    $record_no         =     mysql_num_rows($post_record);
    
    // Determine Number of pages.
    $pages_no         =     intval($record_no / $record_no_per_page);
    if ($record_no % $record_no_per_page){$pages_no++;}
    
    
    if ($page_brwoser <= $pages_no && $record_no != 0 && !empty($page_brwoser)) {
        
        if ($pages_no >  $number_per_page) {
            
            // Incrase the total pages number until the page browser become less than ( total pages number - Number of Pages).
            if ($page_brwoser < ($pages_no - $number_per_page) ) {
                $pages_no = $page_brwoser + $number_per_page;
            }
            
            //Set the Index of while loop = 1 if Page browser less or equal to Number of Pages else make page index equal to (page brwoser - Number of Pages)
            if ($page_brwoser <= $number_per_page){ $page_indx =1;  }
            else {$page_indx = $page_brwoser - $number_per_page; }
        }

        while ($page_indx != ($pages_no + 1)){
            
            if ($page_indx == 1) {
                if (!isset($_GET['p'])) {
                    echo "{$page_indx}";
                } else if (isset($_GET['p']) && $page_brwoser == 1) {
                    echo "{$page_indx}";
                }else {
                    echo "<a href='{$_SERVER['PHP_SELF']}'> {$page_indx}</a>";
                }
            }else {
                if ($page_brwoser == $page_indx) {
                    echo "{$page_indx}";
                } else {
                    echo "<a href='{$_SERVER['PHP_SELF']}?p={$page_indx}'> {$page_indx}</a>";
                }
            }
            $page_indx ++;
        }
    }else{
        echo "error";
    }    
     return compact('record_start', 'record_no_per_page');
}  
لاستدعاء واستخدام الفانكشن

كود: تحديد الكل

extract(page_numbering (3, 4, 'post'));

    $post_news = mysql_query("SELECT * FROM post LIMIT $record_start, $record_no_per_page") ;
    while($row_news = mysql_fetch_array($post_news)){
                $title =$row_news['title'];
                $img =$row_news['img'];
                echo "<br>{$img}";
            }
  


عدد الصفحات الظاهرة

كود: تحديد الكل

 2 * [ $record_no_per_page +1]
عدد المواضيع بالصفحة الواحدة

كود: تحديد الكل

 $number_per_page
اسم جدول من قاعدة البيانات

كود: تحديد الكل

$table_name
في انتظار ارائكم
اي استخدام خاطئ لهذا الموضوع ابرئ نفسي منه امام الله.