<?
$conn = mysql_connect("localhost","root","admin"); 
mysql_select_db("itwx_cx", $conn); 
mysql_query("SET NAMES 'gbk'");  
$xh = $_GET['xh']; 
/*自定义函数,用于正确显示换行和空格*/
function htmlcode($content){
$content=str_replace("\n","<br />",str_replace(" ","$nbsp",$content));     //内容先替换空格再替换换行
return $content;      //返回值
}
/*分页开始*/
$pagesize=10;    //设置每页显示记录数目
$num=mysql_num_rows(mysql_query("SELECT * FROM sjg where xh like '%$xh%'"));    //通过函数查询总记录数
$totalpage=ceil($num/$pagesize);    //通过ceil函数算出总页数,ceil就是进一取整
$page=$_GET["page"];    //从地址栏中获取当前页号
/*判断当page不存在或者小于1或者大于总页数的情况,就是规定个范围从第一页到最后一页*/
if(!$page||$page<1){
$page=1;    //当page不存在或者等于1,page为1
}
elseif($page>$totalpage){
$page=$totalpage;    //当page页数大于总页数的时候,page为总页数
}/* 套公式了,($page-1)*$pagesize */
$offset=($page-1)*$pagesize;
$sql="select * from sjg where xh like '%$xh%' order by ID asc limit $offset,$pagesize ";
$result=mysql_query($sql);    //执行语句
 while($rs=mysql_fetch_array($result)) 
 {
?>
 <DD><a href="sjg_info.php?id=<? echo $rs["ID"]; ?>"><? echo $rs["xh"]; ?></a></DD>
  <?php } ?>
<?   $prepage=$page-1;    //上一页
   $nextpage=$page+1;   //下一页
   if($page<=1){
   $nav1="首页"."||"."上一页";
   }
   else{
   $nav1="<a href='search.php?id=$_GET[id]&page=1'>首页</a>"."||"."<a href='search.php?id=$_GET[id]&page=$prepage'>上一页</a>";
   }
   if($page<$totalpage){
   $nav2="||"."<a href='search.php?id=$_GET[id]&page=$nextpage'>下一页</a>"."||"."<a href='search.php?id=$_GET[id]&page=$totalpage'>尾页</a>";
   }
   else{
   $nav2="下一页"."||"."尾页";
   }
?>
<div id="zt"><ul id="menu-10">
<li>
    <form name="form1">
      <div id="zt01" >
<?
   echo $nav1.$nav2;   echo "【当前显示".$pagesize."条记录】". "【当前是第".$page."页】". "【总共".$num."条记录】";
?>这是一段站内搜索程序~显示搜索结果的~能正常显示~现在问题就是在翻页的时候~总是变成显示数据库里的全部数据~没办法根据前一页文本域传过来的值翻~那位大哥帮帮忙,帮我修改一下~~~谢谢了~~~~~~

解决方案 »

  1.   

    SELECT * FROM sjg where xh like '%$xh%'
    把这条查询语句改一下,这样写如果表中数据很多的话效率会很低的(要返回所有的数据),还有有可能是缓存的问题,因为查询条件相似,前面把所有的数据都返回了,mysql就不会再根据第二条语句去查询了。
    改成select count(*) from sjg where xh like '%$xh%';
    我猜可能是这个原因,其它地方看不出错误。
      

  2.   

    最简单的方法
    <a href='search.php?id=$_GET[id]&page=$prepage&xh=$xh'>上一页 </a>"; 
    然后把上面的$xh=$_GET['XH'],改成REQUEST
      

  3.   

    你这里的select count(*) from sjg where xh like '%$xh%',并不能返回需要的字段数据啊!!!
      

  4.   

    $num=mysql_num_rows(mysql_query("SELECT * FROM sjg where xh like '%$xh%'"));    //通过函数查询总记录
    可以把这一句改成1楼中的
    select count(*) from sjg where xh like '%$xh%';
      

  5.   

    这就是查询总记录数啊!$row[0]可以取得数据。
      

  6.   

    改成$num=mysql_num_rows(mysql_query("select count(*) from sjg where xh like '%$xh%' ")); 以后分页好像不起作用了
      

  7.   

    不能用mysql_num_rows。
    $result=mysql_query("select count(*) from sjg where xh like '%$xh%' "); 
    $row = mysql_fetch_row($result);
    $num=$row[0];
      

  8.   

    多谢楼上的,自己搞定了,原来是这里错了,
    $nav2="||"." <a href='search.php?id=$_GET[id]&page=$nextpage'>下一页 </a>"."||"." <a href='search.把那个id改为xh就可以了,原因可能是XH传丢了引起的,再次多谢各位了。
      

  9.   

    <?php
    /**
     * filename: page.class.php
     * @package:phpbean
     * @author :YuChao(yuchao86#gmail.com>
     * @copyright :Copyright 2009 YuChao
     * @license:version 2.0
     * @create:2009-9-8
     * @modify:2009-9-8
     * @modify:YuChao 2009-9-9
     * description:超强分页类,四种分页模式,默认采用类似baidu,google的分页风格。
     * 2.0增加功能:支持自定义风格,自定义样式,同时支持PHP4和PHP5,
     * to see detail,please visit http://www.phpobject.net/blog/read.php
     * example:
     * 模式四种分页模式:
       require_once('../libs/classes/page.class.php');
       $page=new page(array('total'=>1000,'perpage'=>20));
       echo 'mode:1<br>'.$page->show();
       echo '<hr>mode:2<br>'.$page->show(2);
       echo '<hr>mode:3<br>'.$page->show(3);
       echo '<hr>mode:4<br>'.$page->show(4);
       开启AJAX:
       $ajaxpage=new page(array('total'=>1000,'perpage'=>20,'ajax'=>'ajax_page','page_name'=>'test'));
       echo 'mode:1<br>'.$ajaxpage->show();
       采用继承自定义分页显示模式:
       demo:http://www.phpobject.net/blog
     */
    class page {
    /**
     * config ,public
     */
    var $page_name = "page"; //page标签,用来控制url页。比如说xxx.php?PB_page=2中的PB_page
    var $next_page = '>'; //下一页
    var $pre_page = '<'; //上一页
    var $first_page = 'First'; //首页
    var $last_page = 'Last'; //尾页
    var $pre_bar = '<<'; //上一分页条
    var $next_bar = '>>'; //下一分页条
    var $format_left = '[';
    var $format_right = ']';
    var $is_ajax = false; //是否支持AJAX分页模式 
    /**
     * private
     *
     */
    var $pagebarnum = 10; //控制记录条的个数。
    var $totalpage = 0; //总页数
    var $ajax_action_name = ''; //AJAX动作名
    var $nowindex = 1; //当前页
    var $url = ""; //url地址头
    var $offset = 0;

    /**
     * constructor构造函数
     *
     * @param array $array['total'],$array['perpage'],$array['nowindex'],$array['url'],$array['ajax']...
     */
    function page($array) {
    if (is_array ( $array )) {
    if (! array_key_exists ( 'total', $array ))
    $this->error ( __FUNCTION__, 'need a param of total' );
    $total = intval ( $array ['total'] );
    $perpage = (array_key_exists ( 'perpage', $array )) ? intval ( $array ['perpage'] ) : 10;
    $nowindex = (array_key_exists ( 'nowindex', $array )) ? intval ( $array ['nowindex'] ) : '';
    $url = (array_key_exists ( 'url', $array )) ? $array ['url'] : '';
    } else {
    $total = $array;
    $perpage = 10;
    $nowindex = '';
    $url = '';
    }
    if ((! is_int ( $total )) || ($total < 0))
    $this->error ( __FUNCTION__, $total . ' is not a positive integer!' );
    if ((! is_int ( $perpage )) || ($perpage <= 0))
    $this->error ( __FUNCTION__, $perpage . ' is not a positive integer!' );
    if (! empty ( $array ['page_name'] ))
    $this->set ( 'page_name', $array ['page_name'] ); //设置pagename
    $this->_set_nowindex ( $nowindex ); //设置当前页
    $this->_set_url ( $url ); //设置链接地址
    $this->totalpage = ceil ( $total / $perpage );
    $this->offset = ($this->nowindex - 1) * $perpage;
    if (! empty ( $array ['ajax'] ))
    $this->open_ajax ( $array ['ajax'] ); //打开AJAX模式
    }
    /**
     * 设定类中指定变量名的值,如果改变量不属于这个类,将throw一个exception
     *
     * @param string $var
     * @param string $value
     */
    function set($var, $value) {
    if (in_array ( $var, get_object_vars ( $this ) ))
    $this->$var = $value;
    else {
    $this->error ( __FUNCTION__, $var . " does not belong to PB_Page!" );
    }

    }
    /**
     * 打开倒AJAX模式
     *
     * @param string $action 默认ajax触发的动作。
     */
    function open_ajax($action) {
    $this->is_ajax = true;
    $this->ajax_action_name = $action;
    }
    /**
     * 获取显示"下一页"的代码
     * 
     * @param string $style
     * @return string
     */
    function next_page($style = '') {
    if ($this->nowindex < $this->totalpage) {
    return $this->_get_link ( $this->_get_url ( $this->nowindex + 1 ), $this->next_page, $style );
    }
    return '<span class="' . $style . '">' . $this->next_page . '</span>';
    }

    /**
     * 获取显示“上一页”的代码
     *
     * @param string $style
     * @return string
     */
    function pre_page($style = '') {
    if ($this->nowindex > 1) {
    return $this->_get_link ( $this->_get_url ( $this->nowindex - 1 ), $this->pre_page, $style );
    }
    return '<span class="' . $style . '">' . $this->pre_page . '</span>';
    }

    /**
     * 获取显示“首页”的代码
     *
     * @return string
     */
    function first_page($style = '') {
    if ($this->nowindex == 1) {
    return '<span class="' . $style . '">' . $this->first_page . '</span>';
    }
    return $this->_get_link ( $this->_get_url ( 1 ), $this->first_page, $style );
    }

    /**
     * 获取显示“尾页”的代码
     *
     * @return string
     */
    function last_page($style = '') {
    if ($this->nowindex == $this->totalpage) {
    return '<span class="' . $style . '">' . $this->last_page . '</span>';
    }
    return $this->_get_link ( $this->_get_url ( $this->totalpage ), $this->last_page, $style );
    }

    function nowbar($style = '', $nowindex_style = '') {
    $plus = ceil ( $this->pagebarnum / 2 );
    if ($this->pagebarnum - $plus + $this->nowindex > $this->totalpage)
    $plus = ($this->pagebarnum - $this->totalpage + $this->nowindex);
    $begin = $this->nowindex - $plus + 1;
    $begin = ($begin >= 1) ? $begin : 1;
    $return = '';
    for($i = $begin; $i < $begin + $this->pagebarnum; $i ++) {
    if ($i <= $this->totalpage) {
    if ($i != $this->nowindex)
    $return .= $this->_get_text ( $this->_get_link ( $this->_get_url ( $i ), $i, $style ) );
    else
    $return .= $this->_get_text ( '<span class="' . $nowindex_style . '">' . $i . '</span>' );
    } else {
    break;
    }
    $return .= "\n";
    }
    unset ( $begin );
    return $return;
    }
    /**
     * 获取显示跳转按钮的代码
     *
     * @return string
     */
    function select() {
    $return = '<select name="PB_Page_Select">';
    for($i = 1; $i <= $this->totalpage; $i ++) {
    if ($i == $this->nowindex) {
    $return .= '<option value="' . $i . '" selected>' . $i . '</option>';
    } else {
    $return .= '<option value="' . $i . '">' . $i . '</option>';
    }
    }
    unset ( $i );
    $return .= '</select>';
    return $return;
    }

    /**
     * 获取mysql 语句中limit需要的值
     *
     * @return string
     */
    function offset() {
    return $this->offset;
    }

    /**
     * 控制分页显示风格(你可以增加相应的风格)
     *
     * @param int $mode
     * @return string
     */
    function show($mode = 1) {
    switch ($mode) {
    case '1' :
    $this->next_page = '下一页';
    $this->pre_page = '上一页';
    return $this->pre_page () . $this->nowbar () . $this->next_page () . '第' . $this->select () . '页';
    break;
    case '2' :
    $this->next_page = '下一页';
    $this->pre_page = '上一页';
    $this->first_page = '首页';
    $this->last_page = '尾页';
    return $this->first_page () . $this->pre_page () . '[第' . $this->nowindex . '页]' . $this->next_page () . $this->last_page () . '第' . $this->select () . '页';
    break;
    case '3' :
    $this->next_page = '下一页';
    $this->pre_page = '上一页';
    $this->first_page = '首页';
    $this->last_page = '尾页';
    return $this->first_page () . $this->pre_page () . $this->next_page () . $this->last_page ();
    break;
    case '4' :
    $this->next_page = '下一页';
    $this->pre_page = '上一页';
    return $this->pre_page () . $this->nowbar () . $this->next_page ();
    break;
    case '5' :
    return $this->pre_bar () . $this->pre_page () . $this->nowbar () . $this->next_page () . $this->next_bar ();
    break;
    }

    }
    /*----------------private function (私有方法)-----------------------------------------------------------*/
    /**
     * 设置url头地址
     * @param: String $url
     * @return boolean
     */
    function _set_url($url = "") {
    if (! empty ( $url )) {
    //手动设置
    $this->url = $url . ((stristr ( $url, '?' )) ? '&' : '?') . $this->page_name . "=";
    } else {
    //自动获取
    if (empty ( $_SERVER ['QUERY_STRING'] )) {
    //不存在QUERY_STRING时
    $this->url = $_SERVER ['REQUEST_URI'] . "?" . $this->page_name . "=";
    } else {
    //
    if (stristr ( $_SERVER ['QUERY_STRING'], $this->page_name . '=' )) {
    //地址存在页面参数
    $this->url = str_replace ( $this->page_name . '=' . $this->nowindex, '', $_SERVER ['REQUEST_URI'] );
    $last = $this->url [strlen ( $this->url ) - 1];
    if ($last == '?' || $last == '&') {
    $this->url .= $this->page_name . "=";
    } else {
    $this->url .= '&' . $this->page_name . "=";
    }
    } else {
    //
    $this->url = $_SERVER ['REQUEST_URI'] . '&' . $this->page_name . '=';
    } //end if    
    } //end if
    } //end if
    }

    /**
     * 设置当前页面
     *
     */
    function _set_nowindex($nowindex) {
    if (empty ( $nowindex )) {
    //系统获取
    if (isset ( $_GET [$this->page_name] )) {
    $this->nowindex = intval ( $_GET [$this->page_name] );
    }
    } else {
    //手动设置
    $this->nowindex = intval ( $nowindex );
    }
    }
    /* function _set_nowindex()
    {
    if(isset($_GET[$this->page_name]))
    {
    $this->nowindex=intval($_GET[$this->page_name]);
    }
    }*/
    /**
     * 为指定的页面返回地址值
     *
     * @param int $pageno
     * @return string $url
     */
    function _get_url($pageno = 1) {
    return $this->url . $pageno;
    }

    /**
     * 获取分页显示文字,比如说默认情况下_get_text('<a href="">1</a>')将返回[<a href="">1</a>]
     *
     * @param String $str
     * @return string $url
     */
    function _get_text($str) {
    return $this->format_left . $str . $this->format_right;
    }

    /**
     * 获取链接地址
     */
    function _get_link($url, $text, $style = '') {
    $style = (empty ( $style )) ? '' : 'class="' . $style . '"';
    if ($this->is_ajax) {
    //如果是使用AJAX模式
    return '<a ' . $style . ' href="javascript:' . $this->ajax_action_name . '(\'' . $url . '\')">' . $text . '</a>';
    } else {
    return '<a ' . $style . ' href="' . $url . '">' . $text . '</a>';
    }
    }
    /**
     * 出错处理方式  
     */
    function error($function, $errormsg) {
    die ( 'Error in file <b>' . __FILE__ . '</b> ,Function <b>' . $function . '()</b> :' . $errormsg );
    }
    }
    ?>