08 مرداد 1389,ساعت 19:26:27
خوش آمدید، مهمان - لطفا برای ثبت نام اینجا و یا برای ورود اینجا را کلیک کنید.
5067 ارسال در 937 موضوع- توسط 828 کاربر - جدیدترین کاربر عضو شده: setaare
صفحه: [1]   پایین
  چاپ صفحه  
نويسنده موضوع: صفحه بندي كردن خروجي هاي mySQL بوسيله PHP  (دفعات بازدید: 451 بار)
0 کاربر و 1 مهمان درحال دیدن موضوع.
تازه کار !
*
تشکر شده : 1
تعداد ارسال: 7
آفلاین آفلاین
ديدن مشخصات
« : 09 اسفند 1388,ساعت 15:31:41 »

سلام دوستان
من با PHP كار ميكنم و الان به چندتا مشكل برخوردم و يكي از اونها اينه كه:
مثلا من نتايج يه جدول توي پايگاه داده رو كه 150 تا ركورد داره رو ميخوام تو 15 صفحه كه تو هر صفحه 10 تا از ركوردها نمايش داده بشن و پايين صفحه هم يه هدايتگر به صفحات بعدي وجود داشته باشه؛ چطور همچين چيزي رو ميشه پياده كرد؟
مشكلات بعدي رو هم بعد از حل اين مشكل ميپرسم 
خارج شده است
تازه کار !
*
تشکر شده : 1
تعداد ارسال: 7
آفلاین آفلاین
ديدن مشخصات
« پاسخ #1 : 11 اسفند 1388,ساعت 20:20:03 »

سلام
خودم جوابشو پيدا كردم:

   
پيش فرض آموزش ساخت صفحه بندی(pagination) با php
شاید دیدید که وقتی تعداد پست های یک سایت یا وبلاگ افزایش پیدا می کنه و بیش از حدی می شه که توی صفحه ی اول جا بشه، سایت ها یه صفحه بندی در نظر می گیرن برای صفحاتشون که مطالب رو در چند صفحه نمایش می ده که با کلیک بر روی شماره ی هر صفحه می شه پست های قدیمی تر رو دید. امروز قصد دارم یکی از این آموزش های کاربردی رو براتون بنویسم که خیلی راحت و زیبا می تونید یه صفحه بندی تو سایت خودتون ایجاد کنید و ازش لذت ببرید. این اسکریپت توسط برنامه نویسان سایت 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 < 7 + ($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 > 5 + ($adjacents * 2))   
      {
       
        if($page < 1 + ($adjacents * 2))      
        {
          for ($counter = 1; $counter < 4 + ($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 - (2 + ($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; ?>
خارج شده است
صفحه: [1]   بالا
  چاپ صفحه  
 
پرش به :