0

我已经实现了一个显示所有记录的搜索功能,当我搜索时,它将通过分页过滤所有记录。

但是有一个问题:每次我搜索记录时,它都会显示所有页面,但是当我单击第二页时,它将显示数据库中的所有记录 - 而不是我想要过滤的内容。

这是我的代码:

<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>';
    ?>
4

1 回答 1

0

Do you need to specify the search terms that got you the current search as a final parameter to the PS paginate constructor, so that the links it generates to "next" etc also include the search terms, rather than leaving them blank and therefore possibly matching everything?

于 2012-09-21T01:50:58.163 回答