用limit语句不就可以解决分页吗??可能我没弄明白你的意思

解决方案 »

  1.   

    limit我知道,它可以实现普通的浏览分页[我已经实现了],我说的主要是查询分页。不知道你是怎样将查询出来的数据实现分页浏览的?
      

  2.   

    看来你是把条件post或者get过去以后search1.php拼凑得
    你可以在一个页面里面处理 其中加上hidden类型表单控件 程序判断一下 如果设置了那个值就处理搜索得代码
    另外,你传递得东西完全可以用session来暂时保存啊
      

  3.   

    楼上说的SESSION就可以实现了..只是不知道session有无最大值限制...如果你只是考虑页面表现的内容不能过多,而不考虑实际下载数据的多少...可以用JS来控制输出..保存变量到JS语句里...
    GET得的PAGE值+JS判断所要输出的变量..不过这样好象用不了POST来传递查询语句....必须在search1.php里放查询语句(可以结合GET)...
      

  4.   

    把那些查询提交的变量通过url传递到下一个页面就可以了,大家都是这样实现的,只不过这样需要在接受search数据时同时要接受get和post的数据(如果register_globals=on)就不用考虑这个问题了
      

  5.   

    楼主的问题是没有将sql语句传到下一个页,系统当然会提示查询语句为空了.方法是将sql语句,或者至少是sql语句的条件部分使用session的方法来传到
    下一页session里面可以放许多东西,楼主尽可放心把条件往里面存.
      

  6.   

    查询条件  有关分页的信息  加在隐藏的表单中传入下个个处理页面,在SQL中用limit  offset  控制筛选数据的记录
      

  7.   


    用Session可能不太好吧,比较费系统资源。可以用Hidden的Form,或者用$_GET[],比如:search.php?key=aspbiz&page=10
      

  8.   

    传递查询参数就可以啦!用url方式或者表单隐藏变量都可以!
      

  9.   

    谢谢诸位的建议,但用URL显然很不现实,因为我要实现的是多条件组合的复杂查询,那样URL不知道要写多复杂,而用隐藏表单的问题是:在page=1时,表单数据还有,而一旦翻到page=2或以后时,表单数据就又为空了。所以我决定试一下session。[其实这个问题在ASP中根本就不是个问题,几个Application就解决了,可令人哭笑不得的是PHP中居然没有对应的函数。]     刚才试了一下session,简单举例啊,假如search页面传来的查询信息是3个input:
      text1[比如其值是 bookid ]、text2[别其值是 > ]、text3[比如其值是 5 ]
         与之相对应,我在search1页面中这样接收:
      session_start();
      $txt1 = trim($_POST["text1"]);
      $txt2 = trim($_POST["text2"]);
      $txt3 = trim($_POST["text3"]);
      session_register("txt1");
      session_register("txt2");
      session_register("txt3");
      ......                   [中间的程序省略了]  查询语句如下:
      $sql="SELECT * FROM book WHERE ".$txt1." ".$txt2." ".$txt3." LIMIT ".($page-1)*$page_size." , ".$page_size;  结果还是第一页可以显示,一翻到"下一页"就不行,提示:查询语句为空!  是不是我这样用session还有问题啊???
      哪位大侠能指点指点啊??
      

  10.   

    用URL怎么会复杂呢?你有几个条件就传递几个变量不就行了嘛?
    在页面开头用isset()先判断,如果变量有值就获取变量值,很简单的。只不过看到url有一大串变量不怎么爽而已!呵呵
      

  11.   

    是不是我这样用session还有问题啊???
      哪位大侠能指点指点啊??------------楼主使用了老版的session,你是看书写的吧?应该看手册才对以前写的例子,见笑.:),楼主可参考一下关于php中session的一点小心得  最近在学习写php,被里面的session给缠住了,在书上非常
    简单的session例子,居然在我的电脑上一直没办法运行出来。
    在请教了各位高手,再找了许多资料后,终于有了一个自认为正
    确的答案,现整理如下。
      在php 4.1.0 之前的session大概是使用$HTTP_SERVER_VARS
    这个命令在进行操作的(只是从网上找到的资料没有经过验证),
    但一般现在装的php,都是在4.2、4.3的样子在下的系统里就是
    php-4.3.4-win32
      很显然,书上的东西已经不能支持最新的php了。  经过试验,我解决的方法如下
    1、将session.save_path的路径改为session.save_path = c:\php\tmp
    同时在c:\php下建立tmp目录。2、另,session.cookie_path 的路径千万不能改还是要保持原来的样子
    session.cookie_path = /
      网上有的文章说要把这改成和session.save_path一样的路径,就这
    点把我害了。  改完后重新起动服务器。运行两个文件。test.php<?
    session_start();
    $_SESSION["mytest"]="give my love.";
    echo "<a href=test2.php>go</a>";
    ?>test2.php<?
    session_start();
    echo $_SESSION["mytest"];
    ?>  结果可以让人满意。PS:注意点
    1、session_star()前面不能有任何字符输出,包括前面不能有空格。
    2、$_SESSION一定要大写,不能用小写。
      

  12.   

    把表单的method 改为get我前两天也遇到这个问题
    后来想起来 get 可以在 url 里面传值
      

  13.   

    与之相对应,我在search1页面中这样接收:
      session_start();
      $txt1 = trim($_POST["text1"]);
      $txt2 = trim($_POST["text2"]);
      $txt3 = trim($_POST["text3"]);
      ......                   [中间的程序省略了]  构造或取回查询语句
      if(! isset($_SESSION['sql']))
        $_SESSION['sql'] = "SELECT * FROM book WHERE ".$txt1." ".$txt2." ".$txt3." LIMIT ";
      $sql = $_SESSION['sql'].($page-1)*$page_size." , ".$page_size;