搜索结果分页

3

我想在搜索结果中进行分页。我有一个页面,有两个表格,一个用于搜索,另一个用于显示结果。

    <form method="get">
<table align="center" border="1" cellpadding="10" cellspacing="10">
<tr>
<td>Username</td>
<td><input type="text" name="user"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="search" value="search">
</td>
</tr>
</table>
<table align="center" border="1" cellpadding="10" cellspacing="10">
<tr>
<th>User</th>
<th>Address</th>
</tr>
<?php
while($ft=$pge->fetch_object())
{
?>
<tr>
<td><?php echo $ft->user ?></td>
<td><?php echo $ft->address ?></td>
</tr>
<?php
}
?>
</table>
<center>
<?php
$totalrecords=$totalrecords/2;
for($i=0;$i<$totalrecords;$i++)
{
?>
<a href="pagination.php?pgid=<?php echo $i ?>"><?php echo $i+1  ?></a>
<?php
}
?>
</center>
</form>

默认情况下,我已经应用了分页,但是当我想通过搜索查找用户详细信息时,我也希望在搜索结果中进行分页。然而,我还没有完成这个功能。以下是我的分页代码。

 require('connect.php');
 $sel="select * from submit";
 $ex=$cn->query($sel) or die($cn->error);
 //$ft=$ex->fetch_object();
 $totalrecords=$ex->num_rows;


 if(isset($_REQUEST['pgid']))
 {
   $pgid=$_REQUEST['pgid'];
   $pgn=$pgid*2;
   $pg="select * from submit limit $pgn,2";
   $pge=$cn->query($pg) or die($cn->error);

 }
 else
 {
   $pg="select * from submit limit 0,2";
   $pge=$cn->query($pg) or die($cn->error);
 }

 if(isset($_REQUEST['search']))
 {
  $u=$_REQUEST['user'];

  $searchquery="select * from submit where user like '%$u%'";
  $pge=$cn->query($searchquery) or die($cn->query);

 }
1个回答

1
创建自定义MySQL查询。尝试使用以下代码:-
$pg="select * from submit where 1=1";
if(isset($_REQUEST['search']))
 {
  $u=$_REQUEST['search'];
  $pg.=" and user like '%$u%'";
 }
if(isset($_REQUEST['pgid']))
 {
   $pgid=$_REQUEST['pgid'];
   $pgn=$pgid*2;
   $pg.=" limit $pgn,2";
 }
 else
 {
   $pg.=" limit 0,2";
 }

 $pge=$cn->query($pg) or die($cn->error);

点击搜索按钮时无法运行,会产生语法错误。 在您的SQL语法中有一个错误;请查看与您的MySQL服务器版本相对应的手册,了解正确的语法用法,例如:'user like '%a%' limit 0,2' 在第1行附近。 - johny
请将此行代码修改为 **$pg.=" and user like '%$u%'";**。 - Abhishek Sharma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接