0

php mysqlでフィルタリングされた結果をページ分割する方法は?

私のページネーションには、データベースに保存されているすべてのファイルのみが表示されますが、たとえば、インタビューされた発言のすべてのレコードを検索したい場合、インタビューされた発言を持つすべてのファイルが表示され、2 ページ目にはフィルタリングされた結果が表示されます。

私の問題は、ページネーションをクリックすると、2番目のページでデータベースに保存されているすべてのファイルが再度取得されることです。2 番目のページは、フィルター処理された結果です。

    `<?php 
    include 'functions.php';
    ob_start();

    if(!loggedin())
    { header("Location:login.php");
    exit();
     }

    if(isset($_POST['edit']))
     {

    $_SESSION['id']=$_POST['id'];
     header("Location:edit.php");
    }

     if(isset($_POST['BOOK']))
        {
    $_SESSION['id']=$_POST['id'];
    header("Location:booking_edit.php");}


        if($_POST['types'] == 'name' || $_POST['types'] == 'mobile' || $_POST['types'] ==       'OccasionType')
    {
    $_SESSION['filter']=$_POST['filter'];
     }

     ?>
     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   "http://www.w3.org/TR/html4/loose.dtd">
    <html>
     <head>
    <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
     <title>Manorama Party Plot</title>
      <link href="css/style.css" rel="stylesheet" type="text/css">
    <link rel="stylesheet" type="text/css" href="css/flexigrid.css" media="all" />

    <script type="text/javascript" src="js/prototype.js"></script>
        <script type="text/javascript" src="js/jquery.min.js"></script>

        <script type="text/javascript" src="js/jquery-ui-1.8.16.custom.min.js">           </script>

        <script type="text/javascript">
    $(function(){

    // Datepicker
        $('#From,#To').datepicker({
    inline: true
    });

                //hover states on the static widgets
                $('#dialog_link, ul#icons li').hover(
                    function() { $(this).addClass('ui-state-hover'); }, 
                    function() { $(this).removeClass('ui-state-hover'); }
                );

            });
        </script>        
        <script type="text/javascript">     
       $(document).ready(function() {     
       $('#types').change(function(){     
      if($('#types').val() === 'InquiryDate' || $('#types').val() === 'OccasionDate')     
     {     
     $('#From').show();
      $('#To').show(); 
      $('#filter').hide();     
     }     
      else    
     {
    $('#filter').show();         
     $('#From').hide();
     $('#To').hide();        
     }     
      });     
     });     
      </script> 


      <script type="text/javascript" src="js/flexigrid.js"></script>


     </head>
     <body>



      <div class="wrapper filter_wrapper">
     <div id="header">
       <?php include 'header.php'; ?>
    </div>
    <div id="content"></div></div>
    <div class="fillter_con">
     <div class="flexigrid fillter">
             <div class="pDiv">
                <div class="pDiv2 axport">
                <h2>Filter :</h2>  



       <form action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post' name='form_filter'> 
       <select class="filter_select" id="types" name="types">
                <option value="none">none</option>
                    <option value="name">name</option> 
                    <option value="mobile">mobile</option> 
                    <option value="OccasionType">OccasionType</option>
                    <option value="InquiryDate">InquiryDate</option>
                    <option value="OccasionDate">OccasionDate</option> 
             </select> 
              <input class="filter_input" name="filter" id="filter" type="text" > 
          <input type="text" class="filter_input" id="From" name="From" style="display:  none;" va  lue="From" onblur="this.value==''?this.value='From':this.value=this.value"  onfocus="this.value=='From'?this.value='':this.value=this.value" /> 
          <input type="text" class="filter_input" id="To" name="To" style="display: none;" value="To" onblur="this.value==''?this.value='To':this.value=this.value" onfocus="this.value=='To'?this.value='':this.value=this.value" />  
                  <input class="filter_button" type='submit' value = 'Go'> 
                </form>
                </div>
            </div>
        </div>

        <?php

        $tbl_name="visitor_detail"; $adjacents = 3;

    if($_POST['types'] == 'name') {  
    $query = "SELECT COUNT(*) as num FROM $tbl_name WHERE    name='".$_SESSION['filter']."' ORDER BY id DESC";
    }  
       elseif($_POST['types'] == 'mobile') { 
      $query = "SELECT COUNT(*) as num FROM $tbl_name WHERE mobile='".$_SESSION['filter']."' ORDER BY id DESC";
    } 
       elseif($_POST['types'] == 'OccasionType') {  
     $query = "SELECT COUNT(*) as num FROM $tbl_name WHERE OccasionType='".$_SESSION['filter']."' ORDER BY id DESC";
     } 

       elseif($_POST['types'] == 'InquiryDate') { 
       $query = "SELECT COUNT(*) as num FROM $tbl_name WHERE TodayDate between '".$_POST['From']."' and '".$_POST['To']."' ORDER BY id DESC"; 
       }

       elseif($_POST['types'] == 'OccasionDate') {  
         $query = "SELECT COUNT(*) as num FROM $tbl_name WHERE date between '".$_POST['From']."' and '".$_POST['To']."' ORDER BY id DESC";
         }

    else { 
         $query = "SELECT COUNT(*) as num FROM $tbl_name ORDER BY id DESC";
    }

    $total_pages = mysql_fetch_array(mysql_query($query));
    $total_pages = $total_pages['num'];

    /* Setup vars for query. */
    $targetpage = "all_inquiry.php";    //your file name  (the name of this file)
    $limit = 10;

     $page = $_GET['page'];

    if($page) 
        $start = ($page - 1) * $limit;          //first item to display on       this page
    else
        $start = 0;                             //if no page var is given, set start to 0



     if($_POST['types'] == 'name') {  

      $que = "SELECT * FROM visitor_detail WHERE name='".$_SESSION['filter']."' ORDER BY id   DESC LIMIT $start, $limit";  
       }  
      elseif($_POST['types'] == 'mobile') {  

       $que = "SELECT * FROM visitor_detail WHERE mobile='".$_SESSION['filter']."' ORDER BY id  DESC LIMIT $start, $limit ";  
      } 
       elseif($_POST['types'] == 'OccasionType') {  

      $que = "SELECT * FROM visitor_detail WHERE OccasionType='".$_SESSION['filter']."'   ORDER BY id DESC LIMIT $start, $limit";  
       } 

      elseif($_POST['types'] == 'InquiryDate') {  
      $que="SELECT * FROM visitor_detail WHERE TodayDate between '".$_POST['From']."' and   '".$_POST['To']."' ORDER BY id DESC LIMIT $start, $limit" ;  
     }

       elseif($_POST['types'] == 'OccasionDate') {  
      $que="SELECT * FROM visitor_detail WHERE date between '".$_POST['From']."' and '".$_POST['To']."' ORDER BY id DESC LIMIT $start, $limit" ;  
     }

       else {  
       $que = "SELECT * FROM visitor_detail ORDER BY id DESC LIMIT $start, $limit";  
    } 

      $sql = mysql_query($que);


    if ($page == 0) $page = 1;                  //if no page var is   given, default to 1.
    $prev = $page - 1;                          //previous   page is page - 1
    $next = $page + 1;                          //next page is page + 1
    $lastpage = ceil($total_pages/$limit);      //lastpage is = total pages / items  per page, rounded up.
    $lpm1 = $lastpage - 1;                      //last page minus 1

    /* 
        Now we apply our rules and draw the pagination object. 
        We're actually saving the code to a variable in case we want to draw it more than once.
    */
    $pagination = "";
    if($lastpage > 1)
    {   
        $pagination .= "<div class=\"pagination\">";
        //previous button
        if ($page > 1) 
            $pagination.= "<a href=\"$targetpage?page=$prev\"><div class=\"pPrev pButton pGroup\">
                <span></span>
                </div></a><div class=\"btnseparator\"></div>";

        else
            $pagination.= "<div class=\"pPrev pButton pGroup\">
                <span></span>
                </div><div class=\"btnseparator\"></div>";  

        //pages 
        if ($lastpage < 7 + ($adjacents * 2))   //not enough pages to bother breaking it up
        {   
            for ($counter = 1; $counter <= $lastpage; $counter++)
            {
                if ($counter == $page)
                    $pagination.= "<div    class=\"pGroup\">$counter</div>";
                else
                    $pagination.= "<a href=\"$targetpage?  page=$counter\"><div class=\"pGroup\">$counter</div></a>";                   
            }
        }
        elseif($lastpage > 5 + ($adjacents * 2))    //enough pages to hide some
        {
            //close to beginning; only hide later pages
            if($page < 1 + ($adjacents * 2))        
            {
                for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<div  class=\"pGroup\">$counter</div>";
                    else
                        $pagination.= "<a href=\"$targetpage?page=$counter\"><div class=\"pGroup\">$counter</div></a>";                 
                }
                $pagination.= "<div class=\"pGroup\">...</div>";
                $pagination.= "<div class=\"pGroup\"><a href=\"$targetpage? page=$lpm1\">$lpm1</a></div>";
                $pagination.= "<div class=\"pGroup\"><a href=\"$targetpage? page=$lastpage\">$lastpage</a></div>";      
            }
            //in middle; hide some front and some back
            elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents  * 2))
            {
                $pagination.= "<div class=\"pGroup\"><a href=\"$targetpage? page=1\">1</a></div>";
                $pagination.= "<div class=\"pGroup\"><a href=\"$targetpage?page=2\">2</a></div>";
                $pagination.= "<div class=\"pGroup\">...</div>";
                for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
                {
                    if ($counter == $page)
                        $pagination.= " <div class=\"pGroup\">$counter</div>";
                    else
                        $pagination.= "<a href=\"$targetpage?page=$counter\"><div class=\"pGroup\">$counter</div></a>";                 
                }
                $pagination.= "...";
                $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";
                $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";       
            }
            //close to end; only hide early pages
            else
            {
                $pagination.= "<a href=\"$targetpage?page=1\">1</a>";
                $pagination.= "<a href=\"$targetpage?page=2\">2</a>";
                $pagination.= "<div class=\"pGroup\">...</div>";
                for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<div class=\"pGroup\">$counter</div>";
                    else
                        $pagination.= "<a href=\"$targetpage? page=$counter\"><div class=\"pGroup\">$counter</div></a>";                    
                }
            }
        }

        //next button
        if ($page < $counter - 1) 
            $pagination.= "<a href=\"$targetpage?page=$next\"><div   class=\"pNext pButton pGroup\">
                     </div></a><div class=\"btnseparator\"></div>";
        else
            $pagination.= "<div class=\"pNext pButton pGroup\"></div><div class=\"btnseparator\"></div>";
        $pagination.= "</div>\n";       
    }
        if ($page == 0) $page = 1;                  //if no  page var is given, default to 1.
    $prev = $page - 1;                          //previous  page is page - 1
    $next = $page + 1;                          //next page is page + 1
    $lastpage = ceil($total_pages/$limit);      //lastpage is = total pages / items per page, rounded up.
    $lpm1 = $lastpage - 1;                      //last page minus 1

    /* 
        Now we apply our rules and draw the pagination object. 
        We're actually saving the code to a variable in case we want to draw it more than once.
    */
    $pagination = "";
    if($lastpage > 1)
    {   
        $pagination .= "<div class=\"pagination\">";
        //previous button
        if ($page > 1) 
            $pagination.= "<a href=\"$targetpage?page=$prev\"><div class=\"pPrev pButton pGroup\">
                <span></span>
                </div></a><div class=\"btnseparator\"></div>";

        else
            $pagination.= "<div class=\"pPrev pButton pGroup\">
                <span></span>
                </div><div class=\"btnseparator\"></div>";  

        //pages 
        if ($lastpage < 7 + ($adjacents * 2))   //not enough pages to bother breaking it up
        {   
            for ($counter = 1; $counter <= $lastpage; $counter++)
            {
                if ($counter == $page)
                    $pagination.= "<div class=\"pGroup\">$counter</div>";
                else
                    $pagination.= "<a href=\"$targetpage?page=$counter\"><div class=\"pGroup\">$counter</div></a>";                 
            }
        }
        elseif($lastpage > 5 + ($adjacents * 2))    //enough pages to hide some
        {
            //close to beginning; only hide later pages
            if($page < 1 + ($adjacents * 2))        
            {
                for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<div class=\"pGroup\">$counter</div>";
                    else
                        $pagination.= "<a href=\"$targetpage?page=$counter\"><div class=\"pGroup\">$counter</div></a>";                 
                }
                $pagination.= "...";
                $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";
                $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a><div class=\"btnseparator\"></div>";     
            }
            //in middle; hide some front and some back
            elseif($lastpage - ($adjacents * 2) > $page && $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.= " <div class=\"pGroup\">$counter</div>";
                    else
                        $pagination.= "<a href=\"$targetpage?page=$counter\"><div class=\"pGroup\">$counter</div></a>";                 
                }
                $pagination.= "...";
                $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";
                $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a><div class=\"btnseparator\"></div>";     
            }
            //close to end; only hide early pages
            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.= "<div class=\"pGroup\">$counter</div>";
                    else
                        $pagination.= "<a href=\"$targetpage?page=$counter\"><div class=\"pGroup\">$counter</div></a>";                 
                }
            }
        }

        //next button
        if ($page < $counter - 1) 
            $pagination.= "<a href=\"$targetpage?page=$next\"><div class=\"pNext pButton pGroup\">
                     </div></a><div class=\"btnseparator\"></div>";
        else
            $pagination.= "<div class=\"pNext pButton pGroup\"></div><div class=\"btnseparator\"></div>";
        $pagination.= "</div>\n";       
    }?>  

  <div id="flexme1"><table>
            <thead>
                   <tr>

                    <th width="100"><strong>Name</strong></th>
                    <th width="90"><strong>Mobile</strong></th>
                    <th width="75"><strong>Occasion Type</strong></th>
                    <th width="80"><strong>Occasion Date</strong></th>
                    <th width="70"><strong>Approx Gust</strong></th>
                    <th width="150"><strong>Description</strong></th>
                    <th width="150"><strong>Address</strong></th>
                    <th width="120"><strong>Email</strong></th>
                    <th width="75"><strong>Other Contact</strong></th>

                    <th width="70"><strong>Enquiry Date</strong></th>
                    <th width="80"><strong>Author</strong></th>
                    <th width="100"><strong>Action</strong></th>

                </tr>
            </thead></table>


           <?php while($data = mysql_fetch_array($sql)){?>

     <form name="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> 

            <table border="0" cellspacing="0" cellpadding="0" >
            <tbody> 

                 <tr>   <input name="id" type="hidden" value="<?php echo $data['0']; ?>" >
                    <td><?php echo $data['2']; ?></td>
                    <td><?php echo $data['3']; ?></td>
                    <td><?php echo $data['8']; ?></td>
                    <td><?php echo $data['9']; ?></td>          
                    <td><?php echo $data['10']; ?></td>
                    <td><?php echo $data['11']; ?></td>
                    <td><?php echo $data['4']; ?></td>
                    <td><?php echo $data['5']; ?></td>
                    <td><?php echo $data['6']; ?></td>
                    <td><?php echo $data['12']; ?></td>
                    <td><?php echo $data['13']; ?></td>
                    <td><input name="edit" type="submit" value="Edit">
                    <input  name="BOOK" type="submit" value="Book" style="color:#d90f0f">

                    </td>
                    </tr>



            </tbody>
             </table>
             </form>
             <?php } ?></div>


            <div class="flexigrid">
            <div class="pDiv">
            <div class="pDiv2">


              <div class="pGroup">
              <select name="rp" id="rp"  >
              <option value="10">10&nbsp;&nbsp;</option>
              <option value="15">15&nbsp;&nbsp;</option>
              <option value="20">20&nbsp;&nbsp;</option>
              <option value="30">30&nbsp;&nbsp;</option>
              <option value="50">50&nbsp;&nbsp;</option>
              </select>
              </div> 
              <div class="btnseparator"></div>
               <?=$pagination?>


                      <div class="axport">
                      <h2>Export</h2>
                        <div class="pGroup">
                            <div class="pdf_button  pButton">PDF</div>
                        </div>
                        <div class="btnseparator"></div>
                        <div class="pGroup">
        <?php 
         $types = $_POST['types'];
       $filter = $_POST['filter'];
       $from = $_POST['From'];
        $to = $_POST['To'];
        ?>
                            <div class="excel_button pButton">
                            <form action="excel.php"   method="POST">
                            <input name="types" type="hidden"     value="<?php echo $types;?>">
                            <input name="filter" type="hidden" value="<?php echo $filter;?>">
                            <input name="from" type="hidden" value="<?php echo $from;?>">
                            <input name="to" type="hidden" value="<?php echo $to;?>">                           
                            <input type="submit" value="Excel"> 
                            </form>
                            </div>
                        </div>
                        </div>
                          </div>
                          </div>
                          </div>




        <script type="text/javascript">
        //<![CDATA[
        jQuery(document).ready(function($) {
            $('#flexme1').flexigrid();
        });
        //]]>
        </script>
        </div>
         </div>
        <div id="footer">
         <p>Copyright © <span><a href="#">Aum Digital Marketing</a></span> , All rights    reserved</p>
    </div>
    </body>
    </html>`
4

2 に答える 2

0

更新されたコード

`<?php 
                           include 'functions.php';
                           ob_start();

                           if(!loggedin())
                           { header("Location:login.php");
                           exit();
                            }

                           if(isset($_REQUEST['edit']))
                            {

                           $_SESSION['id']=$_REQUEST['id'];
                            header("Location:edit.php");
                           }

                            if(isset($_REQUEST['BOOK']))
                               {
                           $_SESSION['id']=$_REQUEST['id'];
                           header("Location:booking_edit.php");}


                               if($_REQUEST['types'] == 'name' || $_REQUEST['types'] == 'mobile' || $_REQUEST['types'] ==       'OccasionType')
                           {
                           $_SESSION['filter']=$_REQUEST['filter'];
                            }

                            ?>
                            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   "http://www.w3.org/TR/html4/loose.dtd">
                           <html>
                            <head>
                           <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
                            <title>Manorama Party Plot</title>
                             <link href="css/style.css" rel="stylesheet" type="text/css">
                           <link rel="stylesheet" type="text/css" href="css/flexigrid.css" media="all" />

                           <script type="text/javascript" src="js/prototype.js"></script>
                               <script type="text/javascript" src="js/jquery.min.js"></script>

                               <script type="text/javascript" src="js/jquery-ui-1.8.16.custom.min.js">           </script>

                               <script type="text/javascript">
                           $(function(){

                           // Datepicker
                               $('#From,#To').datepicker({
                           inline: true
                           });

                                       //hover states on the static widgets
                                       $('#dialog_link, ul#icons li').hover(
                                           function() { $(this).addClass('ui-state-hover'); }, 
                                           function() { $(this).removeClass('ui-state-hover'); }
                                       );

                                   });
                               </script>        
                               <script type="text/javascript">     
                              $(document).ready(function() {     
                              $('#types').change(function(){     
                             if($('#types').val() === 'InquiryDate' || $('#types').val() === 'OccasionDate')     
                            {     
                            $('#From').show();
                             $('#To').show(); 
                             $('#filter').hide();     
                            }     
                             else    
                            {
                           $('#filter').show();         
                            $('#From').hide();
                            $('#To').hide();        
                            }     
                             });     
                            });     
                             </script> 


                             <script type="text/javascript" src="js/flexigrid.js"></script>


                            </head>
                            <body>



                             <div class="wrapper filter_wrapper">
                            <div id="header">
                              <?php include 'header.php'; ?>
                           </div>
                           <div id="content"></div></div>
                           <div class="fillter_con">
                            <div class="flexigrid fillter">
                                    <div class="pDiv">
                                       <div class="pDiv2 axport">
                                       <h2>Filter :</h2>  



                              <form action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post' name='form_filter'> 
                              <select class="filter_select" id="types" name="types">
                                       <option value="none">none</option>
                                           <option value="name">name</option> 
                                           <option value="mobile">mobile</option> 
                                           <option value="OccasionType">OccasionType</option>
                                           <option value="InquiryDate">InquiryDate</option>
                                           <option value="OccasionDate">OccasionDate</option> 
                                    </select> 
                                     <input class="filter_input" name="filter" id="filter" type="text" > 
                                 <input type="text" class="filter_input" id="From" name="From" style="display:  none;" va  lue="From" onblur="this.value==''?this.value='From':this.value=this.value"  onfocus="this.value=='From'?this.value='':this.value=this.value" /> 
                                 <input type="text" class="filter_input" id="To" name="To" style="display: none;" value="To" onblur="this.value==''?this.value='To':this.value=this.value" onfocus="this.value=='To'?this.value='':this.value=this.value" />  
                                         <input class="filter_button" type='submit' value = 'Go'> 
                                       </form>
                                       </div>
                                   </div>
                               </div>

                               <?php

                               $tbl_name="visitor_detail"; $adjacents = 3;

                           if($_REQUEST['types'] == 'name') {  
                           $query = "SELECT COUNT(*) as num FROM $tbl_name WHERE    name='".$_SESSION['filter']."' ORDER BY id DESC";
                           }  
                              elseif($_REQUEST['types'] == 'mobile') { 
                             $query = "SELECT COUNT(*) as num FROM $tbl_name WHERE mobile='".$_SESSION['filter']."' ORDER BY id DESC";
                           } 
                              elseif($_REQUEST['types'] == 'OccasionType') {  
                            $query = "SELECT COUNT(*) as num FROM $tbl_name WHERE OccasionType='".$_SESSION['filter']."' ORDER BY id DESC";
                            } 

                              elseif($_REQUEST['types'] == 'InquiryDate') { 
                              $query = "SELECT COUNT(*) as num FROM $tbl_name WHERE TodayDate between '".$_REQUEST['From']."' and '".$_REQUEST['To']."' ORDER BY id DESC"; 
                              }

                              elseif($_REQUEST['types'] == 'OccasionDate') {  
                                $query = "SELECT COUNT(*) as num FROM $tbl_name WHERE date between '".$_REQUEST['From']."' and '".$_REQUEST['To']."' ORDER BY id DESC";
                                }

                           else { 
                                $query = "SELECT COUNT(*) as num FROM $tbl_name ORDER BY id DESC";
                           }

                           $total_pages = mysql_fetch_array(mysql_query($query));
                           $total_pages = $total_pages['num'];

                           /* Setup vars for query. */
                           $targetpage = "all_inquiry.php";    //your file name  (the name of this file)
                           $limit = 10;

                            $page = $_GET['page'];

                           if($page) 
                               $start = ($page - 1) * $limit;          //first item to display on       this page
                           else
                               $start = 0;                             //if no page var is given, set start to 0



                            if($_REQUEST['types'] == 'name') {  

                             $que = "SELECT * FROM visitor_detail WHERE name='".$_SESSION['filter']."' ORDER BY id   DESC LIMIT $start, $limit";  
                              }  
                             elseif($_REQUEST['types'] == 'mobile') {  

                              $que = "SELECT * FROM visitor_detail WHERE mobile='".$_SESSION['filter']."' ORDER BY id  DESC LIMIT $start, $limit ";  
                             } 
                              elseif($_REQUEST['types'] == 'OccasionType') {  

                             $que = "SELECT * FROM visitor_detail WHERE OccasionType='".$_SESSION['filter']."'   ORDER BY id DESC LIMIT $start, $limit";  
                              } 

                             elseif($_REQUEST['types'] == 'InquiryDate') {  
                             $que="SELECT * FROM visitor_detail WHERE TodayDate between '".$_REQUEST['From']."' and   '".$_REQUEST['To']."' ORDER BY id DESC LIMIT $start, $limit" ;  
                            }

                              elseif($_REQUEST['types'] == 'OccasionDate') {  
                             $que="SELECT * FROM visitor_detail WHERE date between '".$_REQUEST['From']."' and '".$_REQUEST['To']."' ORDER BY id DESC LIMIT $start, $limit" ;  
                            }

                              else {  
                              $que = "SELECT * FROM visitor_detail ORDER BY id DESC LIMIT $start, $limit";  
                           } 

                             $sql = mysql_query($que);

                             if(isset($_REQUEST))
                             {
                               unset($_REQUEST['page']);
                               $queryString = http_build_query($_REQUEST);
                             }

                           if ($page == 0) $page = 1;                  //if no page var is   given, default to 1.
                           $prev = $page - 1;                          //previous   page is page - 1
                           $next = $page + 1;                          //next page is page + 1
                           $lastpage = ceil($total_pages/$limit);      //lastpage is = total pages / items  per page, rounded up.
                           $lpm1 = $lastpage - 1;                      //last page minus 1

                           /* 
                               Now we apply our rules and draw the pagination object. 
                               We're actually saving the code to a variable in case we want to draw it more than once.
                           */
                           $pagination = "";
                           if($lastpage > 1)
                           {   
                               $pagination .= "<div class=\"pagination\">";
                               //previous button
                               if ($page > 1) 
                                   $pagination.= "<a href=\"$targetpage?page=$prev&$queryString\"><div class=\"pPrev pButton pGroup\">
                                       <span></span>
                                       </div></a><div class=\"btnseparator\"></div>";

                               else
                                   $pagination.= "<div class=\"pPrev pButton pGroup\">
                                       <span></span>
                                       </div><div class=\"btnseparator\"></div>";  

                               //pages 
                               if ($lastpage < 7 + ($adjacents * 2))   //not enough pages to bother breaking it up
                               {   
                                   for ($counter = 1; $counter <= $lastpage; $counter++)
                                   {
                                       if ($counter == $page)
                                           $pagination.= "<div    class=\"pGroup\">$counter</div>";
                                       else
                                           $pagination.= "<a href=\"$targetpage?  page=$counter&$queryString\"><div class=\"pGroup\">$counter</div></a>";                   
                                   }
                               }
                               elseif($lastpage > 5 + ($adjacents * 2))    //enough pages to hide some
                               {
                                   //close to beginning; only hide later pages
                                   if($page < 1 + ($adjacents * 2))        
                                   {
                                       for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
                                       {
                                           if ($counter == $page)
                                               $pagination.= "<div  class=\"pGroup\">$counter</div>";
                                           else
                                               $pagination.= "<a href=\"$targetpage?page=$counter\"><div class=\"pGroup\">$counter</div></a>";                 
                                       }
                                       $pagination.= "<div class=\"pGroup\">...</div>";
                                       $pagination.= "<div class=\"pGroup\"><a href=\"$targetpage? page=$lpm1&$queryString\">$lpm1</a></div>";
                                       $pagination.= "<div class=\"pGroup\"><a href=\"$targetpage? page=$lastpage&$queryString\">$lastpage</a></div>";      
                                   }
                                   //in middle; hide some front and some back
                                   elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents  * 2))
                                   {
                                       $pagination.= "<div class=\"pGroup\"><a href=\"$targetpage? page=1&$queryString\">1</a></div>";
                                       $pagination.= "<div class=\"pGroup\"><a href=\"$targetpage?page=2&$queryString\">2</a></div>";
                                       $pagination.= "<div class=\"pGroup\">...</div>";
                                       for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
                                       {
                                           if ($counter == $page)
                                               $pagination.= " <div class=\"pGroup\">$counter</div>";
                                           else
                                               $pagination.= "<a href=\"$targetpage?page=$counter&$queryString\"><div class=\"pGroup\">$counter</div></a>";                 
                                       }
                                       $pagination.= "...";
                                       $pagination.= "<a href=\"$targetpage?page=$lpm1&$queryString\">$lpm1</a>";
                                       $pagination.= "<a href=\"$targetpage?page=$lastpage&$queryString\">$lastpage</a>";       
                                   }
                                   //close to end; only hide early pages
                                   else
                                   {
                                       $pagination.= "<a href=\"$targetpage?page=1&$queryString\">1</a>";
                                       $pagination.= "<a href=\"$targetpage?page=2&$queryString\">2</a>";
                                       $pagination.= "<div class=\"pGroup\">...</div>";
                                       for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
                                       {
                                           if ($counter == $page)
                                               $pagination.= "<div class=\"pGroup\">$counter</div>";
                                           else
                                               $pagination.= "<a href=\"$targetpage? page=$counter&$queryString\"><div class=\"pGroup\">$counter</div></a>";                    
                                       }
                                   }
                               }

                               //next button
                               if ($page < $counter - 1) 
                                   $pagination.= "<a href=\"$targetpage?page=$next\&$queryString"><div   class=\"pNext pButton pGroup\">
                                            </div></a><div class=\"btnseparator\"></div>";
                               else
                                   $pagination.= "<div class=\"pNext pButton pGroup\"></div><div class=\"btnseparator\"></div>";
                               $pagination.= "</div>\n";       
                           }
                               if ($page == 0) $page = 1;                  //if no  page var is given, default to 1.
                           $prev = $page - 1;                          //previous  page is page - 1
                           $next = $page + 1;                          //next page is page + 1
                           $lastpage = ceil($total_pages/$limit);      //lastpage is = total pages / items per page, rounded up.
                           $lpm1 = $lastpage - 1;                      //last page minus 1

                           /* 
                               Now we apply our rules and draw the pagination object. 
                               We're actually saving the code to a variable in case we want to draw it more than once.
                           */
                           $pagination = "";
                           if($lastpage > 1)
                           {   
                               $pagination .= "<div class=\"pagination\">";
                               //previous button
                               if ($page > 1) 
                                   $pagination.= "<a href=\"$targetpage?page=$prev&$queryString\"><div class=\"pPrev pButton pGroup\">
                                       <span></span>
                                       </div></a><div class=\"btnseparator\"></div>";

                               else
                                   $pagination.= "<div class=\"pPrev pButton pGroup\">
                                       <span></span>
                                       </div><div class=\"btnseparator\"></div>";  

                               //pages 
                               if ($lastpage < 7 + ($adjacents * 2))   //not enough pages to bother breaking it up
                               {   
                                   for ($counter = 1; $counter <= $lastpage; $counter++)
                                   {
                                       if ($counter == $page)
                                           $pagination.= "<div class=\"pGroup\">$counter</div>";
                                       else
                                           $pagination.= "<a href=\"$targetpage?page=$counter&$queryString\"><div class=\"pGroup\">$counter</div></a>";                 
                                   }
                               }
                               elseif($lastpage > 5 + ($adjacents * 2))    //enough pages to hide some
                               {
                                   //close to beginning; only hide later pages
                                   if($page < 1 + ($adjacents * 2))        
                                   {
                                       for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
                                       {
                                           if ($counter == $page)
                                               $pagination.= "<div class=\"pGroup\">$counter</div>";
                                           else
                                               $pagination.= "<a href=\"$targetpage?page=$counter&$queryString\"><div class=\"pGroup\">$counter</div></a>";                 
                                       }
                                       $pagination.= "...";
                                       $pagination.= "<a href=\"$targetpage?page=$lpm1&$queryString\">$lpm1</a>";
                                       $pagination.= "<a href=\"$targetpage?page=$lastpage&$queryString\">$lastpage</a><div class=\"btnseparator\"></div>";     
                                   }
                                   //in middle; hide some front and some back
                                   elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
                                   {
                                       $pagination.= "<a href=\"$targetpage?page=1&$queryString\">1</a>";
                                       $pagination.= "<a href=\"$targetpage?page=2&$queryString\">2</a>";
                                       $pagination.= "...";
                                       for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
                                       {
                                           if ($counter == $page)
                                               $pagination.= " <div class=\"pGroup\">$counter</div>";
                                           else
                                               $pagination.= "<a href=\"$targetpage?page=$counter&$queryString\"><div class=\"pGroup\">$counter</div></a>";                 
                                       }
                                       $pagination.= "...";
                                       $pagination.= "<a href=\"$targetpage?page=$lpm1&$queryString\">$lpm1</a>";
                                       $pagination.= "<a href=\"$targetpage?page=$lastpag&$queryStringe\">$lastpage</a><div class=\"btnseparator\"></div>";     
                                   }
                                   //close to end; only hide early pages
                                   else
                                   {
                                       $pagination.= "<a href=\"$targetpage?page=1\">1</a>";
                                       $pagination.= "<a href=\"$targetpage?page=2&$queryString\">2</a>";
                                       $pagination.= "...";
                                       for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
                                       {
                                           if ($counter == $page)
                                               $pagination.= "<div class=\"pGroup\">$counter</div>";
                                           else
                                               $pagination.= "<a href=\"$targetpage?page=$counter&$queryString\"><div class=\"pGroup\">$counter</div></a>";                 
                                       }
                                   }
                               }

                               //next button
                               if ($page < $counter - 1) 
                                   $pagination.= "<a href=\"$targetpage?page=$next&$queryString\"><div class=\"pNext pButton pGroup\">
                                            </div></a><div class=\"btnseparator\"></div>";
                               else
                                   $pagination.= "<div class=\"pNext pButton pGroup\"></div><div class=\"btnseparator\"></div>";
                               $pagination.= "</div>\n";       
                           }?>  

                         <div id="flexme1"><table>
                                   <thead>
于 2013-03-13T10:06:19.263 に答える
0

質問の本文を読みませんでしたが、必要な魔法の杖はhttp_build_query()と呼ばれます

それを使用してページネーション リンクを形成し、すべてのフィルタリング オプションを保持します。

于 2013-03-13T09:06:13.553 に答える