我的分页有问题,它正在工作,但当我单击例如时
我已经搜索了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>';
}
}
?>
我的猜测是,分页中的链接不包括搜索字符串部分(?q=...
),因此当您单击它们时,您将再次获得整个未过滤的列表。