<?php require_once('Connections/search.php'); ?>//调用连接MYSQL数据库
<?php
$currentPage = $_SERVER["PHP_SELF"];$aaaaa = $_POST['search'];
?>
<?php
$maxRows_search = 10;
$pageNum_search = 0;
if (isset($_GET['pageNum_search'])) {
  $pageNum_search = $_GET['pageNum_search'];
}
$startRow_search = $pageNum_search * $maxRows_search;mysql_select_db($database_search, $search);
$query_search = "Select name From title Where LOWER(name) like LOWER('%$aaaaa%')";
$query_limit_search = sprintf("%s LIMIT %d, %d", $query_search, $startRow_search, $maxRows_search);
$search = mysql_query($query_limit_search, $search) or die(mysql_error());
$row_search = mysql_fetch_assoc($search);if (isset($_GET['totalRows_search'])) {
  $totalRows_search = $_GET['totalRows_search'];
} else {
  $all_search = mysql_query($query_search);
  $totalRows_search = mysql_num_rows($all_search);
}
$totalPages_search = ceil($totalRows_search/$maxRows_search)-1;$queryString_search = "";
if (!empty($_SERVER['QUERY_STRING'])) {
  $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_search") == false && 
        stristr($param, "totalRows_search") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_search = "&" . htmlentities(implode("&", $newParams));
  }
}
$queryString_search = sprintf("&totalRows_search=%d%s", $totalRows_search, $queryString_search);
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
<table width="760" border="0" align="center" cellpadding="0" cellspacing="0">
  <?php do { ?>
    <tr>
      <td><?php echo $row_search['name']; ?></td>
    </tr>
    <?php } while ($row_search = mysql_fetch_assoc($search)); ?>
</table>
<p><br />
</p>
<p>&nbsp;<a href="<?php printf("%s?pageNum_search=%d%s", $currentPage, 0, $queryString_search); ?>">第一页</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="<?php printf("%s?pageNum_search=%d%s", $currentPage, max(0, $pageNum_search - 1), $queryString_search); ?>">前一页</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="<?php printf("%s?pageNum_search=%d%s", $currentPage, min($totalPages_search, $pageNum_search + 1), $queryString_search); ?>">下一页</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="<?php printf("%s?pageNum_search=%d%s", $currentPage, $totalPages_search, $queryString_search); ?>">最后一页</a></p>
</body>
</html>
<?php
mysql_free_result($search);
?>
这是一段站内搜索程序~显示搜索结果的~能正常显示~现在问题就是在翻页的时候~总是变成显示数据库里的全部数据~没办法根据前一页文本域传过来的值翻~那位大哥帮帮忙,帮我修改一下~~~谢谢了~~~~~~

解决方案 »

  1.   

    Select name From title limit[offset][row];
    可以用一下limit
      

  2.   

    你在点击翻页时没有将搜索关键字传过去,$aaaaa = $_POST['search']; 
    只得到你表单提交时的关键字,翻页时没有将搜索关键字传过去那$aaaaa就没有值,得到的就是所有数据
      

  3.   

    楼上正解!感觉楼主提供的代码写的相当繁琐.代码问题出在下面这段$queryString_search = ""; 
    if (!empty($_SERVER['QUERY_STRING'])) { 
      $params = explode("&", $_SERVER['QUERY_STRING']); 
      $newParams = array(); 
      foreach ($params as $param) { 
        if (stristr($param, "pageNum_search") == false && 
            stristr($param, "totalRows_search") == false) { 
          array_push($newParams, $param); 
        } 
      } 
      if (count($newParams) != 0) { 
        $queryString_search = "&" . htmlentities(implode("&", $newParams)); 
      } 

    $queryString_search = sprintf("&totalRows_search=%d%s", $totalRows_search, $queryString_search);楼主想办法把 $aaaa 的值传给 $querySring_search
      

  4.   

    帮楼主修改了代码,调试下看看吧<?php require_once('Connections/search.php'); ?>
    <?php 
    $currentPage = $_SERVER["PHP_SELF"]; 
    if (isset($_GET['search'])) $aaaaa = $_GET['search'];//得到搜索关键词
    else if (isset($_POST['search'])) $aaaaa = $_POST['search'];?> 
    <?php 
    $maxRows_search = 10;//每页显示的行数 
    $pageNum_search = 1;//开始是第1页 
    if (isset($_GET['pageNum_search'])) 

      $pageNum_search = $_GET['pageNum_search']; //通过url得到变量(GET方法)

    $startRow_search = $pageNum_search * $maxRows_search;//得到偏移量 mysql_select_db($database_search, $search); 
    $query_search = "Select name From title Where LOWER(name) like LOWER('%$aaaaa%')"; 
    $query_limit_search = $query_search ."limit $startRow_search,$maxRows_search;"; 
    $search = mysql_query($query_limit_search, $search) or die(mysql_error()); 
    $row_search = mysql_fetch_assoc($search); 
    if (isset($_GET['totalRows_search'])) {  //如果通过url得到get变量,则不用在计算了
      $totalRows_search = $_GET['totalRows_search']; 
    } else { 
      $all_search = mysql_query($query_search); 
      $totalRows_search = mysql_num_rows($all_search); 

    $totalPages_search = ceil($totalRows_search/$maxRows_search)-1; //计算一共多少页$PHP_SELF_TEMP=$_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
    //$_SERVER['PHP_SELF']和$_SERVER['SCRIPT_NAME'] 都输出本文件相对于网站跟目录的相对路径
    $PHP_SELF=$_SERVER['REQUEST_URI']?$_SERVER['REQUEST_URI']:$PHP_SELF_TEMP;
    //$_SERVER['REQUEST_URI']同 $_SERVER['PHP_SELF']和$_SERVER['SCRIPT_NAME']$first_page_url = $PHP_SELF.
    "?totalPages_search=$totalPages_search&pageNum_search=1&search=$aaaaa";//构造第一页urlif ($pageNum_search > 1) $pre_page_num = $pageNum_search -1;
    else $pre_page_num = 1;//控制 第一页的上一页还显示为第一页
    $pre_page_url =$PHP_SELF.
    "?totalPages_search=$totalPages_search&pageNum_search=$pre_page_num&search=$aaaaa";//上一页 if ($pageNum_search < $totalPages_search ) $next_page_num = $pageNum_search + 1;
    else  $next_page_num = $totalPages_search ;//最后一页的下一页还是最后一页
    $next_page_url = $PHP_SELF.
    "?totalPages_search=$totalPages_search&pageNum_search=$next_page_num&search=$aaaaa";//下一页$last_page_url = $PHP_SELF.
    "?totalPages_search=$totalPages_search&pageNum_search=$totalPages_search&search=$aaaaa";//最后一页?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>无标题文档 </title> 
    </head> <body> 
    <table width="760" border="0" align="center" cellpadding="0" cellspacing="0"> 
      <?php do { ?> 
        <tr> 
          <td> <?php echo $row_search['name']; ?> </td> 
        </tr> 
        <?php } while ($row_search = mysql_fetch_assoc($search)); ?> 
    </table> 
    <p> <br /> 
    </p> 
    <p>&nbsp; <a href=" <?php echo $first_page_url; ?>">第一页 </a>
    <a href=" <?php echo $pre_page_url; ?>">前一页 </a> 
    <a href=" <?php echo $next_page_url; ?>">下一页 </a>
    <a href=" <?php echo $last_page_url; ?>">最后一页 </a> </p> 
    </body> 
    </html> 
    <?php 
    mysql_free_result($search); 
    ?>
      

  5.   

    //得到搜索关键词
    $aaaaa = empty($_GET['search'])?(empty($_POST['search'])?"":$_POST['search']):$_GET['search']
      

  6.   

    我使用php写搜索后的分页代码也遇到这个问题
    开始以为是原始代码的问题
    后来总结经验
    发现问题出在
    post的检索词在翻页的时候丢失了
    现在看到的帖子
    正好看看先