分页时分页转到其他链接但计算行数

时间:2013-08-02 12:14:52

标签: php sql pagination

我的分页有问题但是当我点击例如

我有搜索ermel ermel有8个字段,它会输出分页 因为限制设置为每页5个

[1] [2]

但是当我点击第二页时,它将转到另一页并删除我的查询。

并将再次计算我的整个查询

[1] [2] [3] [4] [5] [6]

喜欢这样,并将重置为默认查询

我不确定错误在哪里 - 我试图删除一些部分,但这是唯一一部分提前无法正常工作的部分。

这是我正在使用的PHP代码。

<?php
$searchtext = '';
if(isset($_GET['q'])) $searchtext = mysql_real_escape_string($_GET['q']);
if($searchtext) {

  $per_page =5;
                        $pages_query = mysql_query("SELECT COUNT('PersonID') FROM persons where firstname like '%$searchtext' or lastname like '%$searchtext' order by date desc ");
                        $pages = ceil(mysql_result($pages_query,0) / $per_page);

                        $page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
                        $start = ($page - 1) * $per_page;

   $query=mysql_query("select * from persons where firstname like '%$searchtext' or lastname like '%$searchtext' order by date desc LIMIT $start,$per_page ");
} 

else 
{


   $per_page =5;
                        $pages_query = mysql_query("SELECT COUNT('PersonID') FROM persons ");
                        $pages = ceil(mysql_result($pages_query,0) / $per_page);

                        $page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
                        $start = ($page - 1) * $per_page;
    $query=mysql_query("select * from persons  order by date desc LIMIT $start,$per_page ");
}





    while($test = mysql_fetch_array($query))
            {
                $id = $test['PersonID'];

                                echo"<div class = content />";
                echo "<table>
                <tr>
                <td rowspan='2'><img height=200 width=200 src='upload/". $test['Image'] ."'/></td>
                <td><a href ='profile.php?PersonID=$id'>".$test['LastName'].", ". $test['FirstName']." ". $test['MiddleName']."</a>

                </tr>
                <tr>
                    <td><a href ='user_edit_reports.php?PersonID=$id'><input type='submit' name='submit' value='Edit'/></a>
                </tr>
                </table>";

                                echo"</div>";



            }
                if ($pages >=1 && $page <= $pages) {
                           for ($x=1; $x<=$pages; $x++) {
                         echo ($x == $page) ? '<strong><a href="?page='.$x.'">'.$x.' </a></strong>' : '<a href="?page='.$x.'">'.$x.' </a>';
                           }
                         }
?>

1 个答案:

答案 0 :(得分:1)

我的猜测是,分页中的链接不包含搜索字符串部分(?q=...),因此当您单击它们时,您将再次获得整个未过滤的列表。