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

دروس لتعلم كيفية البرمجه بـ PHP , أو بعض الأفكار البرمجيه المفيده ! أيضا لشرح بعض الدوال أو الكلاسات التي قام الأعضاء او الغير بعملها , لتدمجها ببرامجك .
harede
عضو جديد
مشاركات: 39
اشترك في: الأحد يوليو 27, 2008 7:08 am

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

مشاركة بواسطة 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