<?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> <a href="<?php printf("%s?pageNum_search=%d%s", $currentPage, 0, $queryString_search); ?>">第一页</a> <a href="<?php printf("%s?pageNum_search=%d%s", $currentPage, max(0, $pageNum_search - 1), $queryString_search); ?>">前一页</a> <a href="<?php printf("%s?pageNum_search=%d%s", $currentPage, min($totalPages_search, $pageNum_search + 1), $queryString_search); ?>">下一页</a> <a href="<?php printf("%s?pageNum_search=%d%s", $currentPage, $totalPages_search, $queryString_search); ?>">最后一页</a></p>
</body>
</html>
<?php
mysql_free_result($search);
?>这是一段站内搜索程序~显示搜索结果的~能正常显示~现在问题就是在翻页的时候~总是变成显示数据库里的全部数据~没办法根据前一页文本域传过来的值翻~那位大哥帮帮忙,帮我修改一下~~~谢谢了~~~~~~
<?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> <a href="<?php printf("%s?pageNum_search=%d%s", $currentPage, 0, $queryString_search); ?>">第一页</a> <a href="<?php printf("%s?pageNum_search=%d%s", $currentPage, max(0, $pageNum_search - 1), $queryString_search); ?>">前一页</a> <a href="<?php printf("%s?pageNum_search=%d%s", $currentPage, min($totalPages_search, $pageNum_search + 1), $queryString_search); ?>">下一页</a> <a href="<?php printf("%s?pageNum_search=%d%s", $currentPage, $totalPages_search, $queryString_search); ?>">最后一页</a></p>
</body>
</html>
<?php
mysql_free_result($search);
?>这是一段站内搜索程序~显示搜索结果的~能正常显示~现在问题就是在翻页的时候~总是变成显示数据库里的全部数据~没办法根据前一页文本域传过来的值翻~那位大哥帮帮忙,帮我修改一下~~~谢谢了~~~~~~
可以用一下limit
只得到你表单提交时的关键字,翻页时没有将搜索关键字传过去那$aaaaa就没有值,得到的就是所有数据
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
<?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> <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);
?>
$aaaaa = empty($_GET['search'])?(empty($_POST['search'])?"":$_POST['search']):$_GET['search']
开始以为是原始代码的问题
后来总结经验
发现问题出在
post的检索词在翻页的时候丢失了
现在看到的帖子
正好看看先