• آموزش ساخت صفحه بندی در php
    #1
    Note 
    شاید دیدید که وقتی تعداد پست های یک سایت یا وبلاگ افزایش پیدا می کنه و بیش از حدی می شه که توی صفحه ی اول جا بشه، سایت ها یه صفحه بندی در نظر می گیرن برای صفحاتشون که مطالب رو در چند صفحه نمایش می ده که با کلیک بر روی شماره ی هر صفحه می شه پست های قدیمی تر رو دید. امروز قصد دارم یکی از این آموزش های کاربردی رو براتون بنویسم که خیلی راحت و زیبا می تونید یه صفحه بندی تو سایت خودتون ایجاد کنید و ازش لذت ببرید. این اسکریپت توسط برنامه نویسان سایت Stranger Studios نوشته شده

    بنده هم هیچ نقشی در این کار نداشته ام به جز فارسی نوشتنش. تبریک به خودم.

    نتیجه ی کار به این صورت خواهد بود:




    بخش اول: کد نویسی

    کد php:
    <?php
        
        include
    ('config.php');    // فایل حاوی تنظیمات اتصال به پایگاه داده

     
       $tbl_name='tableName'       //نام جدول پایگاه داده
     
       
        
        $adjacents 
    3//تعداد صفحاتی که بعد از شماره ی صفحه نمایش می دهد
     
       
        $query 
    'SELECT COUNT(*) as `num` FROM $tbl_name'// کوئری دریافت تعداد صفحات قابل نمایش 
     
       $total_pages mysql_fetch_array(mysql_query($query));
     
       $total_pages $total_pages['num'];
     
       
        $targetpage 
    'pageName'    //اسم این فایل که کدها را در آن قرار می دهید
     
       
        $limit 
    5                                //تعداد پست هایی که در هر صفحه نشان داده می شود
     
       $page $_GET['page'];
     
       if($page
     
           $start = ($page 1) * $limit            //اولین گزینه گزینه ای که در صفحه نمایش داده می شود
     
       else
            $start 
    0                               
        
        
    /* دریافت اطلاعات 
        column_name نام ستون یا ستونهایی می باشد که از جدول می خوانید
        */
     
       $sql 'SELECT column_name FROM $tbl_name LIMIT $start, $limit';
     
       $result mysql_query($sql);
     
       
        if 
    ($page == 0$page 1;
     
       $prev $page 1;
     
       $next $page 1;
     
       $lastpage ceil($total_pages/$limit);
     
       $lpm1 $lastpage 1;
     
       
        $pagination 
    '';
     
       if($lastpage 1)
     
          
            $pagination 
    .= '<div class=\'pagination\'>';
     
           //کلید قبلی
     
           if ($page 1
     
               $pagination.= '<a href=\'$targetpage?page=$prev\'>« previous</a>';
     
           else
                $pagination
    .= '<span class=\'disabled\'>« previous</span>'   
            
            
    //صفحات    
     
           if ($lastpage + ($adjacents 2))    
            
       
                for 
    ($counter 1$counter <= $lastpage$counter++)
     
               {
     
                   if ($counter == $page)
     
                       $pagination.= '<span class=\'current\'>$counter</span>';
     
                   else
                        $pagination
    .= '<a href=\'$targetpage?page=$counter\'>$counter</a>'                   
                
    }
     
           }
     
           elseif($lastpage + ($adjacents 2))    
            
    {
     
               
                if
    ($page + ($adjacents 2))        
                
    {
     
                   for ($counter 1$counter + ($adjacents 2); $counter++)
     
                   {
     
                       if ($counter == $page)
     
                           $pagination.= '<span class=\'current\'>$counter</span>';
     
                       else
                            $pagination
    .= '<a href=\'$targetpage?page=$counter\'>$counter</a>'                   
                    
    }
     
                   $pagination.= '...';
     
                   $pagination.= '<a href=\'$targetpage?page=$lpm1\'>$lpm1</a>';
     
                   $pagination.= '<a href=\'$targetpage?page=$lastpage\'>$lastpage</a>'       
                
    }
     
               
                elseif
    ($lastpage - ($adjacents 2) > $page &amp;amp;&amp;amp$page > ($adjacents 2))
     
               {
     
                   $pagination.= '<a href=\'$targetpage?page=1\'>1</a>';
     
                   $pagination.= '<a href=\'$targetpage?page=2\'>2</a>';
     
                   $pagination.= '...';
     
                   for ($counter $page $adjacents$counter <= $page $adjacents$counter++)
     
                   {
     
                       if ($counter == $page)
     
                           $pagination.= '<span class=\'current\'>$counter</span>';
     
                       else
                            $pagination
    .= '<a href=\'$targetpage?page=$counter\'>$counter</a>'                   
                    
    }
     
                   $pagination.= '...';
     
                   $pagination.= '<a href=\'$targetpage?page=$lpm1\'>$lpm1</a>';
     
                   $pagination.= '<a href=\'$targetpage?page=$lastpage\'>$lastpage</a>'       
                
    }
     
               
                else
                
    {
     
                   $pagination.= '<a href=\'$targetpage?page=1\'>1</a>';
     
                   $pagination.= '<a href=\'$targetpage?page=2\'>2</a>';
     
                   $pagination.= '...';
     
                   for ($counter $lastpage - (+ ($adjacents 2)); $counter <= $lastpage$counter++)
     
                   {
     
                       if ($counter == $page)
     
                           $pagination.= '<span class=\'current\'>$counter</span>';
     
                       else
                            $pagination
    .= '<a href=\'$targetpage?page=$counter\'>$counter</a>'                   
                    
    }
     
               }
     
           }
     
           
            
    //کلید بعدی
     
           if ($page $counter 1
     
               $pagination.= '<a href=\'$targetpage?page=$next\'>next »</a>';
     
           else
                $pagination
    .= '<span class=\'disabled\'>next »</span>';
     
           $pagination.= '</div>\n'       
        
    }
    ?>

        <?php
            while
    ($row mysql_fetch_assoc($result))
     
           {

     
               /* 
                کدهای تکرار شما
                برای مثال:
                
                echo $row['name'].'<br>';
                
                */
     
           
            
    }
     
       ?>

    <?php echo $pagination?>
    توضیحات کامل رو به صورت کامنت توی کدها گذاشتم. فقط یه نکته هم این که شما می تونید استایل این صفحه بندی رو تغییر بدید. برای نمونه این استایل رو می تونید در فایل css خودتون قرار بدید:

    کد:
    div.pagination {
    padding: 3px;
    margin: 3px;
    }
    div.pagination a {
    padding: 2px 5px 2px 5px;
    margin: 2px;
    border: 1px solid #AAAADD;
    text-decoration: none; /* no underline */
    color: #000099;
    }
    div.pagination a:hover, div.pagination a:active {
    border: 1px solid #000099;
    color: #000;
    }
    div.pagination span.current {
    padding: 2px 5px 2px 5px;
    margin: 2px;
    border: 1px solid #000099;
    font-weight: bold;
    background-color: #000099;
    color: #FFF;
    }
    div.pagination span.disabled {
    padding: 2px 5px 2px 5px;
    margin: 2px;
    border: 1px solid #EEE;
    color: #DDD;
    }




    امیدوارم به دردتون خورده باشه.

    پاسخ
    #2
    Note 
    [تصویر:  copy-paste-keyboard-plagiarism-copyright.jpg]

    و اکنون غزلی در باره کپی پیست:
    کپی پیست مچکرم!
    کپی پیست من بی تو هیچم!
    کپی پیست همیشه کنارم بمون.

    D:
    KEEP SMILING
    پاسخ
    #3
    Note 
    عجب غزلی!Confusedmile40:
    آقا کل زندگی ما کپی پیسته اینم روش :whistle:

    پاسخ
    ایجاد موضوع جدید   پاسخ به موضوع  

    موضوعات مرتبط با این موضوع...
    موضوع نویسنده پاسخ بازدید آخرین ارسال
      آموزش آموزش کامپوزر Composer moh3en 0 123 14-05-2017 ساعت 16:12
    آخرین ارسال: moh3en
    Note آموزش MVC به زبان ساده (تصویری) Daniel 1 1,008 16-08-2016 ساعت 09:24
    آخرین ارسال: aaiz
    Note آموزش MVC Daniel 1 810 26-11-2015 ساعت 12:56
    آخرین ارسال: bkk
    Note کتاب آموزش PHP از مقدماتی تا پیشرفته Stack OverFlow 0 1,298 16-02-2015 ساعت 10:48
    آخرین ارسال: Stack OverFlow
    Note آموزش مقدماتی php (کتاب) PHP.sec 0 486 16-03-2014 ساعت 21:25
    آخرین ارسال: PHP.sec
    Note آموزش PHP از مقدماتی تا پیشرفته Stack OverFlow 0 431 28-02-2014 ساعت 16:23
    آخرین ارسال: Stack OverFlow
    Note آموزش Regex IranPhp 1 509 09-02-2014 ساعت 18:29
    آخرین ارسال: PHP.sec
    Note آموزش گذاشتن کپچا(Captcha) در سایت SOFTAFZAR 1 1,451 06-02-2014 ساعت 22:46
    آخرین ارسال: Wp script
    Note آموزش ساخت نسخه موبایل برای سایت SOFTAFZAR 0 519 27-01-2014 ساعت 15:24
    آخرین ارسال: SOFTAFZAR
    Note آموزش Laravel (قسمت سوم) Daniel 0 845 24-01-2014 ساعت 17:39
    آخرین ارسال: Daniel

    کاربرانِ درحال بازدید از این موضوع:   1 مهمان