2012-09-21 3 views
0

J'ai implémenté une fonction de recherche qui affiche tous les enregistrements et quand je la recherche, elle filtre tout avec la pagination. Il y a cependant un problème: chaque fois que je recherche un enregistrement, il affiche toutes les pages, mais lorsque je clique sur la deuxième page, il affiche tous les enregistrements dans la base de données - pas ce que je veux filtrer.Résultats de recherche de pagination

Voici mon code:

<form id="form1" name="form1" method="get" action=""> 
    <br/> 
     <div> 
     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
     <font color ="white" face ="Arial" size ="5" style="padding: 5px; text-align: center;">Search for an Applicant Record</font><br/><br/> 
     <table border=0 cellSpacing=2 cellPadding=2 align ="left" > 
      <tr> 
        <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td> 
        <td>&nbsp;&nbsp;&nbsp;</td> 
        <td>&nbsp;&nbsp;&nbsp;</td> 
        <td>&nbsp;&nbsp;&nbsp;</td> 
        <td>&nbsp;&nbsp;&nbsp;</td> 
        <td>&nbsp;&nbsp;&nbsp;</td> 
        <td><a href="search.php"><img src="/applicants/icons/reset.png" title="Reset Page"/><font size="3" face="Tahoma" color="white"><b>Reset</b></font></a></td> 
       </tr> 
       <tr> 
        <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td> 
        <td align="left"><p><label for="searchfor"><font color ="white" size ="2" face ="Tahoma"><b>Search for:   </b></font></label></p></td> 
        <td>&nbsp;</td> 
        <td align="left"><input type="text" name="searchfor" class="tb5a" id="searchfor" size="25" /></td> 
        <td align="left"> 
        <select name="select" class="tb5a"> 
        <option selected="selected">Applicant's Name</option> 
        <option>Position Applying For</option> 
        <option>Work Experience</option> 
        <option>Remarks</option> 
        </select> 
        </td> 
        <td>&nbsp;&nbsp;&nbsp;</td> 
        <td>&nbsp;&nbsp;&nbsp;</td> 
       </tr> 
       <tr> 
        <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td> 
        <td align="left"><p><label for="from"><font color ="white" size ="2" face ="Tahoma"><b>Date Applied from:   </b></font></label></p></td> 
        <td>&nbsp;</td> 
        <td align="left"><input name="from" type="text" class="tb5a" id="from" size="10" /></td> 
        <td>&nbsp;&nbsp;&nbsp;</td> 
        <td>&nbsp;&nbsp;&nbsp;</td> 
        <td>&nbsp;&nbsp;&nbsp;</td> 

       </tr> 
       <tr> 
        <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td> 
        <td align="left"><p><label for="date_appliedto"><font color ="white" size ="2" face ="Tahoma"><b>  to:   </b></font></label></p></td> 
        <td>&nbsp;</td> 
        <td align="left"><input name="to" type="text" class="tb5a" id="to" size="10" /></td> 
        <td>&nbsp;&nbsp;&nbsp;</td> 
        <td>&nbsp;&nbsp;&nbsp;</td> 
        <td>&nbsp;&nbsp;&nbsp;</td> 
       </tr> 
       <tr> 
        <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td> 
        <td>&nbsp;&nbsp;&nbsp;</td> 
        <td>&nbsp;</td> 
        <td>&nbsp;&nbsp;&nbsp;</td> 
        <td>&nbsp;&nbsp;&nbsp;</td> 
        <td>&nbsp;&nbsp;&nbsp;</td> 
        <td colspan="1" align="right"><p><input type="submit" name="search" class="update" id="button" value=" Search " onclick=verify();/></p></td> 
       </tr> 
      </table> 
     </div> 
    </form> 
<?php 
    error_reporting(0); 
    include_once 'include/conn.inc.php'; 
    //Include the PS_Pagination class 
    include('include/ps_pagination.php'); 
      //Connect to mysql db 
      $conn = mysql_connect('localhost','root',''); 
     if(!$conn) die("Failed to connect to database!"); 
     $status = mysql_select_db('timemanagement', $conn); 
     if(!$status) die("Failed to select database!"); 

      if (isset($_POST['search'])) { 
    $sql = "Select * from applicants_access order by applicant_id desc"; 
    }else{ 
    if ($_REQUEST["searchfor"]<>'') { 
     $search_searchfor = " AND (lname LIKE '%".mysql_real_escape_string($_REQUEST["searchfor"])."%' OR fname LIKE '%".mysql_real_escape_string($_REQUEST["searchfor"])."%' OR mname LIKE '%".mysql_real_escape_string($_REQUEST["searchfor"])."%' OR image LIKE '%".mysql_real_escape_string($_REQUEST["searchfor"])."%' OR appfor LIKE '%".mysql_real_escape_string($_REQUEST["searchfor"])."%' OR workexp LIKE '%".mysql_real_escape_string($_REQUEST["searchfor"])."%' OR remarks LIKE '%".mysql_real_escape_string($_REQUEST["searchfor"])."%')"; 
     } 

     if ($_REQUEST["from"]<>'' and $_REQUEST["to"]<>'') { 
      $sql = "SELECT * FROM applicants_access WHERE date_applied >= '".mysql_real_escape_string($_REQUEST["from"])."' AND date_applied <= '".mysql_real_escape_string($_REQUEST["to"])."'".$search_searchfor; 
     } 
     else if ($_REQUEST["from"]<>'') { 
      $sql = "SELECT * FROM applicants_access WHERE date_applied >= '".mysql_real_escape_string($_REQUEST["from"])."'".$search_searchfor; 
     } 
     else if ($_REQUEST["to"]<>'') { 
      $sql = "SELECT * FROM applicants_access WHERE date_applied <= '".mysql_real_escape_string($_REQUEST["to"])."'".$search_searchfor; 
     } 
     else { 
      $sql = "SELECT * FROM applicants_access WHERE applicant_id>0".$search_searchfor; 
     } 
     if (($_REQUEST["select"])==($_REQUEST["searchfor"])){ 
      $sql = "Select * from applicants_access order by applicant_id desc"; 
     } 
     $sql_result = mysql_query($sql); 

     echo '<center>'; 
      /* 
     * Create a PS_Pagination object 
     * 
     * $conn = MySQL connection object 
     * $sql = SQl Query to paginate 
     * 10 = Number of rows per page 
     * 5 = Number of links 
     * "param1=valu1&param2=value2" = You can append your own parameters to paginations links 
     */ 

     $pager = new PS_Pagination($conn, $sql, 20, 10); 

     /* 
     * Enable debugging if you want o view query errors 
     */ 
     $pager->setDebug(true); 

     /* 
     * The paginate() function returns a mysql result set 
     * or false if no rows are returned by the query 
     */ 
     $rs = $pager->paginate(); 
     if(!$rs) die(mysql_error()); 
       if($sql_result){ 

      echo '<br/>', 
      '<div align ="center">', 
      '<table id="table-2" cellspacing="0" cellpadding="1" border=1 >', 
      '<thead>', 
      '<th><center><font color ="#640303"><b>Last Name</b></font></center></th>', 
      '<th><center><font color ="#640303"><b>First Name</b></font></center></th>', 
      '<th><center><font color ="#640303"><b>Middle Name</b></font></center></th>', 
      '<th><center><font color ="#640303"><b>View Attachment</b></font></center></th>', 
      '<th><center><font color ="#640303"><b>Contact Number</b></font></center></th>', 
      '<th><center><font color ="#640303"><b>Position Applying For</b></font></center></th>', 
      '<th><center><font color ="#640303"><b>Work Experience</b></font></center></th>', 
      '<th><center><font color ="#640303"><b>Date Applied</b></font></center></th>', 
      '<th><center><font color ="#640303"><b>Remarks</b></font></center></th>', 
      '</thead>'; 

     if (mysql_num_rows($sql_result)>0) { 
       while ($row = mysql_fetch_array($rs)) { 

       echo '<tbody>', 
       '<tr>', 
       '<td><center><font color = "black">', $row["lname"], '</font></center></td>', 
       '<td><center><font color = "black">', $row["fname"], '</font></center></td>', 
       '<td><center><font color = "black">', $row["mname"], '</font></center></td>', 
       '<td><center><a href=images/'.$row[0].'/'.$row['filename'].' target="_blank">View</a></td>', 
       '<td><center><font color = "black">', $row["cnumber"], '</font></center></td>', 
       '<td><center><font color = "black">', $row["appfor"], '</font></center></td>', 
       '<td><center><font color = "black">', $row["workexp"], '</font></center></td>', 
       '<td><center><font color = "black">', $row["date_applied"], '</font></center></td>', 
       '<td><center><font color = "black">', $row["remarks"], '</font></center></td>', 
       '</tr></tbody>'; 
      } 
     } 
     else { 

      echo '<tr><td colspan="45">No results found</td></tr>'; 

     } 
      echo '</table></div>'; 
    ?> 
    <?php 
     } 
    } 

      echo '<div class="paginationTG">'; 
      echo '<ul>'; 
     //Display the link to first page: First 
     echo $pager->renderFirst(); 

     //Display the link to previous page: << 
     echo $pager->renderPrev(); 
      echo'</span>'; 
     /* 
     * Display page links: 1 2 3 
     * $prefix = Will be prepended to the page link (optional) 
     * $suffix = Will be appended to the page link (optional) 
     * 
     */ 

     echo $pager->renderNav('<li class="currentpage">', '</li>'); 

     //Display the link to next page: >> 
     echo $pager->renderNext(); 

     //Display the link to last page: Last 
     echo $pager->renderLast(); 
      echo '</div>' . '</ul>'; 
      echo '</center>'; 
    ?> 

Répondre

0

Avez-vous besoin de préciser les termes de recherche que vous avez obtenu la recherche en cours en tant que paramètre final au constructeur PS paginate, de sorte que les liens qu'elle génère à "prochain" etc, inclure également les termes de recherche, plutôt que de les laisser vides et donc éventuellement correspondre à tout?

Questions connexes